r 软件 - 识别 table 列中的对象,多于或少于

r software - identify objects in table column, more than, or less than

我会尽力解释我的疑问。

我有一个 table,其中包含一些变量 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 值的 table。但我需要知道的是异常值是在观测值 2、3 还是 145 中。

我同意@MrFlick。 which() 是最好的方法。如果你想采取下一步并删除那些你可以做的异常值 x$BLF<-x$BLF[-which(x$BLF>3)] 获取 MrFlick 正在谈论的那些索引,并使用 - 运算符从 BLF 列中删除这些条目。当然,在那之后你将它存储回同一列。实际上,真的不要按照我上面说的去做,因为如果你的数据存储在数据框中,R 会自动用它上面的值替换删除的值,以保持正确的列长度!

可能最好用这样的 NA 替换异常值 x$BLF[which(x$BLF>3)]<-NA。或者你可以像这样从你的数据集中删除整行 x<-x[-which(x$BLF>3),] 你现在有逗号的原因是当你处理一个矩形数据框时你必须指定行,列,就像这样 [row I want, column I want] 所以我只是指定要删除的行,而没有指定列。

可能比您想要的要多,但我认为这可能有所帮助。

就是这样!谢谢你们!

现在,我只想确定每个变量的离群值。那个命令完全解决了我的疑问。

谢谢