1

我有大量来自 excel 文件(保存为 csv)的数据,其中包含试验(X)和时间(Y)。我知道有一个代码可以通过使用卡方测试代码在试验中取出单个异常值。但是,我希望能够取出数据集中具有异常值的整个列,同时保持文件中的其他数据不变。我很难找到/想出一个允许这样做的代码。有什么建议吗?!

4

1 回答 1

11

鉴于您对@user603 的回复,我推测您想从数据集中删除整个X 变量,即使只有一个观察值在该变量上存在异常值。这在 R 中是微不足道的。使用您的首选策略来识别异常值并将其分配给变量:

outs = c(...)
data = data[,-outs]

或者,您可以不将这些变量包含在模型公式中,并保留 data.frame 原样。


另一方面,我认为这是一个非常糟糕的主意,并且我怀疑一定有一些混乱促使您相信这是您应该做的事情。让我列出一些事情:

  1. 将协变量视为具有异常值通常是没有意义的。我们通常认为异常值存在于响应变量中。在这种情况下,一种可能性是删除(即data = data[-outs,])。
  2. 如果您确实有异常值,则删除观察结果通常是您可能选择的最糟糕的选择。使用健壮的损失函数会好得多,例如 Tukey 的 bisquare。
于 2012-08-03T20:20:46.683 回答