在R Studio中查找四分位数和异常值时出错

问题描述 投票:0回答:1

我正在做一个大学项目,我试图在一个有 722 行和 9 列的数据集中找到异常值,所以有超过 6000 个变量。

我尝试了很多方法:

首先是发生这种情况的 Z 分数。

z_scores<-(concrete_strength_test-mean(concrete_strength_test))/sd(concrete_strength_test)
Error in is.data.frame(x) : 
  'list' object cannot be coerced to type 'double'
In addition: Warning message:
In mean.default(concrete_strength_test) :
  argument is not numeric or logical: returning NA

第二个分位数:

Q1 <- quantile(concrete_strength_test, .25)
Error in quantile.default(concrete_strength_test, 0.25) : 
  missing values and NaN's not allowed if 'na.rm' is FALSE

由于缺少或 NA 值,我使用 mouse 函数运行代码并摆脱了它们,但随后出现了此错误:

Q1 <- quantile(concrete_strength_test_imputed, .25)
Error in xtfrm.data.frame(x) : cannot xtfrm data frames

我只是不确定下一步该去哪里,因此我们将不胜感激。

r statistics
1个回答
0
投票

如果我理解正确的话,您想将 9 列视为一大袋值,而不是在每一列中找到分位数和异常值?

如果是这种情况,则

concrete_strength_test
的数据结构是错误的。您将其作为 data.frame/list 但需要它作为向量。为此,请先将其转换。然后就可以进行各种分析了:

values = c(as.matrix(concrete_strength_test))

z_scores = (values-mean(values))/sd(values)
q1 = quantile(values,c(.25),na.rm=T)
© www.soinside.com 2019 - 2024. All rights reserved.