r软件 - 识别表格列中的对象,大于或小于

时间:2016-10-13 00:47:33

标签: r outliers

我会尽力解释我的怀疑。

例如,我有一个包含一些变量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)命令,我会得到一个包含TRUEFALSE值的表格。但我需要知道的是,如果异常值是观察2,3或145。

2 个答案:

答案 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)

那就是它!谢谢你们两个!

目前,我只想确定每个变量的异常值。这个命令完全解决了我的疑问。

谢谢