我会尽力解释我的怀疑。
例如,我有一个包含一些变量X,Y,Z的表。 每个变量都有数值。
所以,让我说我有
RDIST RDENS AGR BLF
1 146 0.000 0 0.0
2 338 0.000 0 0.0
3 931 0.000 0 3.7
我正在尝试识别异常值,所以我使用了dotchart。
但是现在,我想知道,在每个变量中,我都有异常值。
使用list(x$BLF>3)
命令,我会得到一个包含TRUE
或FALSE
值的表格。但我需要知道的是,如果异常值是观察2,3或145。
答案 0 :(得分:0)
我同意@MrFlick。 which()
是最好的方式。如果您想采取下一步并删除可以执行的异常值
x$BLF<-x$BLF[-which(x$BLF>3)]
使用-
运算符获取MrFlick正在讨论的那些索引并从BLF列中删除这些条目。当然,之后将它存储回同一列。实际上,真的不做我上面所说的,因为如果你的数据存储在数据帧中,R会自动用它上面的值替换被删除的值,以保持正确的列长度!
可能最好用NA x$BLF[which(x$BLF>3)]<-NA
替换NA。或者您可以像这样删除数据集中的整行x<-x[-which(x$BLF>3),]
您现在拥有逗号的原因是当您处理矩形数据帧时,您必须指定行,列,如此[row I want, column I want]
所以我只是指定要删除的行而不指定列。
可能比你想要的更多,但我认为这可能会有所帮助。
答案 1 :(得分:0)
那就是它!谢谢你们两个!
目前,我只想确定每个变量的异常值。这个命令完全解决了我的疑问。
谢谢