【发布时间】:2013-03-05 08:29:26
【问题描述】:
我是 R 新手,我尝试使用一个函数来测试大型数据框中的异常值,该数据框中有 600 多个变量,除了最后两列之外,所有变量都是数字。我尝试了 outliers 包中的异常值函数来一次测试一列,我以无法使用的数字向量结束。有没有更好的方法来识别数据框中的所有异常值。
myout <- c()
for (i in 1:dim(training)[2]){
if (is.numeric(training[,i])) {
myout <- c(myout,outlier(training[,i])) }
}
【问题讨论】:
-
你最终得到了一个向量,因为你创建了一个向量。这里有什么问题?如果最后两列不是数字,为什么要测试它们?
-
异常值函数到底出了什么问题?一方面,可以给异常值函数一个数据框,在其中单独测试每一列...
-
你读过
?outlier吗?它返回向量中与平均值最不同的值,因此值向量正是您的代码所期望的。你期望输出什么? -
我会比杰克更强调。您必须查看引用的答案。如果您有极端值的数据,除非您能够确定原因,否则您应该保留并使用适当的方法。仅仅丢弃“异常值”是一项重大的统计罪过。
标签: r