首页 > 解决方案 > 我的功能不起作用,但我输入的值确实

问题描述

我正在尝试创建一个函数来检查我的大型数据框中的特定值。数据集从 SAS 导入到 R 中,这似乎创建了一些独特的 NA 值。我的解决方案是使用 grep 找到这些奇怪的值来手动修复它们。我想创建一个简单地输出值的函数,以便我可以修复它们。功能如下:

not.numeric <- function(mydata,column) {unique(mydata[grep('[0-9]',mydata$column,invert=TRUE),
                                                      c('SeriesID','Reference',column)])}

很简单,它在列中搜索非数值。为了使其正常工作,列的值用“”括起来。但是,当我尝试运行该功能时:

not.numeric(df,'Depth')

没有值出现,我收到一条警告消息:未知或未初始化的列:“列”。但是当我像这样替换值时:

unique(df[grep('[0-9]',df$'Depth',invert=TRUE),c('SeriesID','Reference','Depth')])

它工作得很好。我想创建一个函数,因为我必须经常检查它并且有 100 多列要检查。有什么建议为什么该功能不起作用但代码起作用?

标签: rfunction

解决方案


推荐阅读