首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

match.arg(opt_crit)中出错:'arg‘必须为NULL或字符向量

match.arg() 函数是 R 语言中的一个函数,用于从给定的选项中匹配并返回一个有效的参数值。当函数报错 "'arg' 必须为 NULL 或字符向量" 时,通常是因为传递给 match.arg() 的参数类型不正确。

基础概念

match.arg() 函数的基本用法如下:

代码语言:txt
复制
match.arg(arg, choices, several.ok = FALSE)
  • arg:要匹配的参数值。
  • choices:可选值的列表。
  • several.ok:一个逻辑值,表示是否允许返回多个匹配项。

可能的原因及解决方法

  1. 参数类型错误
    • arg 不是 NULL 或字符向量。
    • choices 不是字符向量。
  • 参数值错误
    • arg 中的值不在 choices 列表中。

示例代码及解决方法

假设我们有以下代码:

代码语言:txt
复制
opt_crit <- c("A", "B", "C")
result <- match.arg(opt_crit)

这段代码会报错,因为 opt_crit 不是 NULL 或单个字符向量。

正确的用法

代码语言:txt
复制
opt_crit <- "B"
choices <- c("A", "B", "C")
result <- match.arg(opt_crit, choices)
print(result)  # 输出 "B"

错误的用法及解决方法

代码语言:txt
复制
opt_crit <- c("A", "B", "C")
choices <- c("A", "B", "C")
result <- match.arg(opt_crit, choices)  # 报错

解决方法: 确保 opt_crit 是单个字符向量或 NULL

代码语言:txt
复制
opt_crit <- "B"
choices <- c("A", "B", "C")
result <- match.arg(opt_crit, choices)
print(result)  # 输出 "B"

参考链接

通过确保传递给 match.arg() 的参数类型和值正确,可以避免这个错误。

相关搜索:match.arg(mvnTest)中出错:'arg‘的长度必须为1T-test错误'arg‘必须为NULL或字符向量在使用parApply时,如何纠正“第一个错误:'arg‘必须为空或字符向量”?如何求解:输入必须是任意长度的字符向量或字符向量列表,每个字符向量的长度为1Android 'Super expression‘必须为null或react-native-gifted-chat中的函数打印python dict中的键值出错:字符串索引必须为整数获取超级表达式必须为null或React本机应用程序中的函数如何检查变量是否为null或空字符串或JavaScript中的所有空格?检查对象是否为null或r中的空字符串的最佳方法Next.js中的动态路由获取字符串:‘id’参数必须为‘TypeError’类型。接收的null未捕获错误:未捕获(在promise中):TypeError:超级表达式必须为null或Angular v6中的函数spark中用于检查数据帧中的列的isNullOrEmpty函数为null或空字符串为什么我在错误中出错:输入`medication_name`的‘`mutate()’出现问题。X结果%1必须是单个字符串,而不是长度为%2的字符向量python中的数据增强抛出错误"int()参数必须是字符串、类似字节的对象或数字,而不是'dict'“错误:使用tidyREDCap中的"make_choose_all_table“时,结果1必须是单个字符串,而不是长度为0的字符向量Python返回TypeError:在字符串中从字典中搜索关键字时,切片索引必须为整数或无,或者具有__index__方法
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

R语言的常用函数速查

一、基本 1.数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量character;字符型向量 list:列表 data.frame:数据框c:连接为向量或列表 length...字符串处理 character:字符型向量 nchar:字符数 substr:取子串format,formatC:把对象用格式转换为字符串paste,strsplit:连接或拆分charmatch,pmatch...:字符串匹配grep,sub,gsub:模式匹配与替换 3.复数 complex,Re,Im,Mod,Arg,Conj:复数函数 4....rbind:把行合并为矩阵diag:矩阵对角元素向量或生成对角矩阵aperm:数组转置 nrow, ncol:计算数组的行数和列数dim:对象的维向量 dimnames:对象的维名row/colnames...,dput,environment ,,formals,format.info,interactive,is.finite,is.function,is.language,is.recursive ,match.arg

2.7K90

CCPP输入输出函数汇总分析

由于每个流在FILE对象中维持了两个标志,即出错标志和文件结束标志,为了区分其不同,必须调用ferror或feof。...补充:必须指定用户进程缓冲区的长度n,即buf的大小,此函数从流中一直读到下一个换行符为止,但是不超过n-1个字符,读入的字符被送入用户缓冲区buf中。该缓冲区以null字符结尾。...如若该行包括最后换行符的字数大于n-1,则其只返回一个不完整的行,但是缓冲区buf总是以null字符结尾,对此函数的调用会继续读该行。缓冲区buf中的内容为:(字符+换行符)+null。...当fgets时会在用户buf中增加一个null以标识用户buf的结束,而fputs时,以null为终止字符,但是尾端的null并不写在流中。...而对于一次一行的方式,当每次结构体中有null字符时,fputs就会停止,所以也不能用它实现读结构,同时fgets中包含有null字节或换行符,其也不能正常工作。

1.3K20
  • CCPP输入输出函数汇总分析

    由于每个流在FILE对象中维持了两个标志,即出错标志和文件结束标志,为了区分其不同,必须调用ferror或feof。 getc()是C/C++标准库函数,用于从文件中读取一个字符。...补充:必须指定用户进程缓冲区的长度n,即buf的大小,此函数从流中一直读到下一个换行符为止,但是不超过n-1个字符,读入的字符被送入用户缓冲区buf中。该缓冲区以null字符结尾。...如若该行包括最后换行符的字数大于n-1,则其只返回一个不完整的行,但是缓冲区buf总是以null字符结尾,对此函数的调用会继续读该行。缓冲区buf中的内容为:(字符+换行符)+null。...当fgets时会在用户buf中增加一个null以标识用户buf的结束,而fputs时,以null为终止字符,但是尾端的null并不写在流中。...而对于一次一行的方式,当每次结构体中有null字符时,fputs就会停止,所以也不能用它实现读结构,同时fgets中包含有null字节或换行符,其也不能正常工作。

    1.8K20

    将Python和R整合进一个数据分析流程

    为TRUE,myArgs向量中只包含添加到命令行的参数。...如果默认设置为FALSE ,myArgs向量中还包含其它参数,比如刚被执行的脚本路径。...在这种方式下运行命令行脚本是有用的,但如果希望用这个方法执行多个连续却相互独立脚本时,就变得繁琐,并且容易出错。然而,这可能让一个 Python或R进程直接去执行另一个类似的命令。...在Python中的形式以一个字符串列表表示,其相应的元素如下所示: [‘’, ‘’, ‘arg1’ , ‘arg2’, ‘arg3’, ‘arg4’] 下面代码是运行在Python中调用R的一个例子:...解决这一问题最简单的方法是为全路径名称加上双引号,然后用单引号封装此字符串,这样,R保留参数本身的双引号。 下面的代码中,给出在R 中执行 Python 脚本的实例。

    3.1K80

    将Python和R整合进一个数据分析流程

    例如,打开一个终端环境并运行R脚本,命令如下: Rscript path/to/myscript.R arg1 arg2 arg3 请注意以下问题: 对于Rscript 和Python 命令必须在你所在的路径中执行...为TRUE,myArgs向量中只包含添加到命令行的参数。...如果默认设置为FALSE ,myArgs向量中还包含其它参数,比如刚被执行的脚本路径。...在这种方式下运行命令行脚本是有用的,但如果希望用这个方法执行多个连续却相互独立脚本时,就变得繁琐,并且容易出错。然而,这可能让一个Python或R进程直接去执行另一个类似的命令。...解决这一问题最简单的方法是为全路径名称加上双引号,然后用单引号封装此字符串,这样,R保留参数本身的双引号。 下面的代码中,给出在R 中执行 Python 脚本的实例。

    2.4K80

    UNIX高级环境编程 第三次实验 实现带参数的简单Shell

    fork()函数返回值为-1时表示出错。 如果子进程只是运行与父进程完全一样的程序,那用处是很有限的。要让子进程运行不同于父进程的程序,就必须调用execve函数,它是 所有其他exec函数的基础。...实参数用NULL或系统环境变量environ均可。注意,因为environ由系统提供,属于外部变量,所以说明时必须用“extern”修饰。...因此在token为或>时,设置相应的flag:0为正常参数,1代表输入重定向,2代表输出重定向。...:**可执行程序所带的参数,第一个参数为可执行文件名字,没有带路径且arg必须以NULL结束。...fork创建子进程若出错则打印出错信息,pid=0表示在子进程中,若有重定向输入输出,则在redirect_stdin或 redirect_stdout中处理,execvp填入可执行文件参数,子进程开始执行

    96120

    PSR-2 编码规范

    概览 代码 必须 遵循 [PSR-1] 中的编码规范 。 代码 必须 使用 4 个空格符而不是「Tab 键」进行缩进。...软性的长度约束 必须 要限制在 120 个字符以内,若超过此长度,带代码规范检查的编辑器 必须 要发出警告,不过 一定不可 发出错误提示。...关键字与 True/False/Null PHP 的 关键字 必须 使用小写形式。 PHP 的常量 true, false, 还有 null 必须 使用小写形式。 3....方法的参数 参数列表中,每个逗号后面 必须 要有一个空格,而逗号前面 一定不可 有空格。 有默认值的参数,必须 放到参数列表的末尾。 必须 被包含在成对的花括号之中, 这能让结构体更加标准化,以及减少加入新行时,出错的可能性。

    76920

    PHP 编码规范

    有一部分的编码规范 PSR 中是建议,此编码规范会强制要求。 此编码规范 是以 PSR-1 / PSR-2 / PSR-2扩展 为蓝本,并增加了相应的细节说明。...PHP代码必须且只可使用不带BOM的UTF-8编码 一份PHP文件中应该要不就只定义新的声明,如类、函数或常量等不产生从属效应的操作,要不就只有会产生从属效应的逻辑操作,但不该同时具有两者“从属效应”(...“从属效应”包含却不仅限于:生成输出、直接的 require 或 include、连接外部服务、修改 ini 配置、抛出错误或异常、修改全局或静态变量、读或写文件等。...关键字 以及 True/False/Null PHP所有关键字必须全部小写。 常量 true 、false 和 null 也必须全部小写。...每个结构体的主体都必须被包含在成对的花括号之中, 这能让结构体更加结构话,以及减少加入新行时,出错的可能性。

    3.6K20

    PSR-2 编码风格规范

    本文中的 必须,不得,需要,应,不应,应该,不应该,推荐,可以 和 可选 等能愿动词按照 RFC 2119 中的描述进行解释。 概览 代码 必须 遵循 PSR-1 中的编码规范 。...软性的长度约束 必须 要限制在 120 个字符以内,若超过此长度,带代码规范检查的编辑器 必须 要发出警告,不过 一定不可 发出错误提示。...关键字与 True/False/Null PHP 的 关键字 必须 使用小写形式。 PHP 的常量 true, false, 还有 null 必须 使用小写形式。..., $arg3 = []) 7 { 8 // 方法主体 9 } 10} 方法的参数 参数列表中,每个逗号后面 必须 要有一个空格,而逗号前面 不得 有空格。...每个结构体的主体都 必须 被包含在成对的花括号之中, 这能让结构体更加标准化,以及减少加入新行时,出错的可能性。

    24920

    TiFlash 函数下推必知必会丨十分钟成为 TiFlash Contributor

    内容 以 function(arg_1, arg_2, arg_3, … arg_n) 为例,一个 TiFlash 函数单元测试的内容应该至少包含以下几个部分: 数据类型 对于每个 arg_i 的所有支持类型...(null value))边界值一些通用的边界值例子如下: 数值类型(int,double,decimal 等):最大/最小值,0 值,null 值 字符串类型:空字符串,中文等非 ascii 字符,null...当然对于一些需要对 null 值特殊处理的函数,比如 concat_ws,因为要达到 “输出参数如果是 null 则忽略该参数” 的目的,concat_ws 需要自己处理 null 值逻辑,这样的话就必须重载...对于需要自己实现 null 值处理逻辑的函数,如果结果为 null,必须给这个 nullable column 的 nestedColumn 设上一个有意义的值,所有 Function 都假设 nullable...使用 getArgumentsThatAreAlwaysConstant 简化函数开发 (不推荐) 在函数开发中,可能发现某个参数通常为常量,并且如果假设该参数一直为常量的话,开发函数会简单很多,这时候可以考虑强制该参数为常量

    33930

    扩展mysql - 手把手教你写udf

    对于象SUM()一样工作的集合函数,你也必须提供如下的函数: l xxx_clear()(在5.1版本中必须) 对一个新组重置当前集合值为初试集合值,但不插入任何参量。...字符串内容作为args->args[i],而字符串长度为args->lengths[i]。你不能采用null结尾的字符串。...如果发生错误,你可以存储一个值在error参量指向的变量中。error指向一单字节变量,而不是一个字符串缓冲区。 xxx_clear()是MySQL 5.1必须的。...你可以用这个来提醒你获取一个错误或无论xxx()是否返回NULL的一个结果。你不能把一个字符串存到error!error指向单字节变量而不是字符串缓冲区。...如果字符串函数需要返回一个超过255字节的字符串,你必须用 malloc() 在你的 xxx_init() 函数或者xxx()函数里为字符串分配空间,并且在 xxx_deinit() 函数里释放此空间。

    5.4K60

    R语言基础教程——第3章:数据结构——数据框

    每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。由于数据框与分析人员通常设想的数据集的形态较为接近,我们在讨论数据框时将交替使用术语列和变量。...基于标记(如果存在)或离开的参数本身创建组件名称。row.names参数为NULL或单个整数或字符串,指定要用作行名称的列,或给出数据框行名称的字符或整数向量。...check.rows如果为真,则检查行长度和名称的一致性。check.names 如果为真,则检查数据框中变量的名称,以确保它们是语法上有效的变量名称,并且不重复。...fix.empty.names:逻辑指示“未命名”的参数(在未被正式调用为someName = arg的意义上)是否得到自动构造的名称,或者更确切地说是名称“”。...需要设置为FALSE,即使在检查时也是如此。stringsAsFactors字符向量应该转换为因子吗?

    77420

    Shell脚本学习1

    echo arg #输出arg变量 echo -e arg #执行arg里的转义字符。...echo加了-e默认会换行 echo arg > myfile #显示结果重定向至文件,会生成myfile文件 注意: echo后单引号和双引号作用是不同的 单引号不能转义里面的字符,双引号可有可无,单引号主要用在原样输出中...#format-string 为格式控制字符串,arguments 为参数列表。功能和用法与c语言的 printf 命令类似。...如果手误写错(例如 var = test),刚好要使用rm -rf $var/删除这个目录,实际删除的是/ 变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z) 中间不能有空格,...${var:=word} 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。 ${var:?

    32020

    PHP常用库函数介绍+常见疑难问题解答

    要检查用户输入文本是否有效,可以用empty(); (2)empty();——最好用的一个函数,用于检查变量是否具有空值 定义和作用范围:用于检查变量是否具有空值:包括:空字串,0,null 或false...:'; if(is_numeric($_GET['fo'])){ //在参数中无fo参数时,则出错。...=''的情形:"; if($_GET['fo']==''){ //在参数中无fo参数时,则出错。...* %x – 十六进制数(小写字母) * %X – 十六进制数(大写字母)     arg1, arg2, arg++ 等参数将插入到主字符串中的百分号 (%) 符号处。...该函数是逐步执行的,在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。如果 % 符号多于 arg 参数,则您必须使用占位符。

    1.4K80

    Rust实战系列-基本语法

    直接编译以上代码会出错,Rust 编译器提示不能将两个任意类型 T 的值相加。 出现这个问题的原因是 T 代表任意类型,可能是不支持相加操作的类型。 如何规定类型 T 必须实现加法运算呢?...Rust 中的所有运算符,包括加法,都是在特征中定义的,为了要求类型 T 必须支持加法运算,在函数定义的时候包括一个特征绑定操作。...String 可能是最接近其他编程语言的字符串类型,支持熟悉的操作,如字符串连接、追加、删除空白字符等。 str 是一个高性能、功能相对较少的类型。创建后,str 的值不能再扩展或收缩。...其他类型: (1)char:单个字符,编码为 4 个字节。char 的内部表示相当于 UCS-4/UTF-32,这与 &str 和 String 不同,后者将单个字符编码为 UTF-8。...在例子中,错误会使程序崩溃(unwarp() 函数) 将字符串长度设置为 0 ,防止 line 的内容在下个循环仍然可用 手动迭代文件的每一行是很麻烦的,即使在某些情况下很有用。

    2.2K10
    领券