【问题标题】:r software - identify objects in table column, more than, or less thanr 软件 - 识别表列中的对象,大于或小于
【发布时间】:2016-10-13 00:47:32
【问题描述】:

我会尽力解释我的疑惑。

例如,我有一个包含一些变量 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 中。

【问题讨论】:

  • 你想要大纲的行索引吗?使用which(x$BLF>3)

标签: r outliers


【解决方案1】:

我同意@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] 所以我只指定我想在不指定列的情况下删除行。

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

【讨论】:

    【解决方案2】:

    就是这样!谢谢两位!

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

    谢谢

    【讨论】:

      猜你喜欢
      • 2019-03-18
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 2011-01-25
      • 2011-04-07
      • 2010-11-13
      • 1970-01-01
      • 2013-05-27
      相关资源
      最近更新 更多