R 验证:如何检查单个值(不是整列)是否为数字?

R validate: how to check if individual values (not the entire column) are numbers?

我正在 运行 使用 R validate

对我的数据框进行一些检查

我想检查我的列 Protocol Number 中的值是否真的是数字。当我使用 is.numeric 编写表达式时,我得到以下输出:

上面链接的文档说“我们看到每个规则检查一个项目,即一列数据”但这不是我想要的。我不想检查整列数据,而是检查每个单独的值。

因此,当我调用 violating() 时,我收到一条错误消息,显示不包含数字的行

Error in violating(assaydat, out) : Not all rules have record-wise output

Protocol Number 列实际上是一个字符向量,一些可能的值(在许多值中)是“1”、“2”、“3”或诸如“未完成”或“待定”之类的注释.如果有评论而不是数字,我想标记数据框中的每一行。

如何正确执行此操作?

您可以使用:

grepl("^[0-9]+$", `Protocol Number`)

它会 return 如果该列仅包含数字,则为 TRUE,否则为 FALSE。