【发布时间】:2014-03-23 14:28:07
【问题描述】:
我没有尝试从数据集中删除异常值,而是尝试创建一个新数据框,该数据框仅包含其中包含异常值的行。
我能够将不同组的平均值和标准差列绑定到数据集的末尾。现在,我已经尝试使用此代码生成异常数据表:
Outliers <- Sample[((Sample$x - Sample$Averages)/Sample$StDevs) > 2.00,]
此过程会运行,但会为异常值生成一个空表。我从数据中测试了一些单独的值,以确保存在异常值,并且确实存在。如果我指定一行,上面的计算确实会产生一个布尔参数。当我尝试在表格中收集这些异常值时,我遇到了问题。我也尝试将异常值初始化为 data.frame 或 data.table,但在这里也没有成功(可能只是因为我是 R 新手)。
例如: 当我跑步时
((Sample$x[3] - Sample$Averages[3])/Sample$StDevs[3]) > 2
它返回 TRUE。这很好。那么,当我只想保留 Sample 中满足此条件的所有内容时,为什么会得到一个空的异常值表?我不觉得这应该是一个难题,但我这辈子都做不到。
有什么建议吗?提前致谢!
【问题讨论】:
-
除非您发布
str(Sample)的结果,否则我们无法确定您的错误可能是什么来源。发布更多代码和数据。 -
所有数据都是私有的。但是,我将添加一个编辑以尝试进一步解释我的尝试。
-
也许我的问题的最简单版本是:如何在不知道最终将拥有多少行的情况下初始化数据框(它将与“样本”具有相同数量的列)。
-
Sample[ 0, ]应该为您提供一个没有行和相同列名的空数据框 -
我不知道如何关闭这个网站上的问题,但是为了给大家省去不必要的麻烦,我的问题已经解决了。谢谢大家的意见!