如何处理缺失值错误 - vegan :: rda()

时间:2016-05-06 09:10:22

标签: r

我使用Vegan R包来分析我的数据。但是我的数据中有一些缺失值,所以当我使用函数rda时。 输出是这样的:

#RDA
pca.rda <- rda(pcan ~ ., data = all.env, scale = FALSE)
  

na.fail.default中的错误(列表(Plot = c(7L,8L,9L,34L,35L,36L,61L ,:     对象中缺少值

有谁知道如何处理这些缺失值?

我只在两列数据中缺少值,见下文

all.env$SM
[1] 21.92 25.92 27.47 30.49 31.18 29.54 30.06    NA 24.17 27.52 30.29 24.25 28.61 34.57 33.63
[16]    NA    NA    NA 23.52 23.52 28.69 29.41 32.68 30.29    NA    NA    NA 13.35 11.33 17.59
[31] 26.39 27.44 24.47 21.09    NA 15.61 19.46 21.09 13.60 25.97 26.34    NA    NA    NA    NA
[46] 17.64 16.01 16.31 22.05 23.46 22.39    NA    NA    NA 13.23 19.36 17.27 29.34 28.31 30.13
[61] 20.48    NA 20.20 19.87 20.69 16.30 27.45 24.55    NA    NA    NA    NA 19.37 21.14 16.81
[76] 24.13 26.09 25.79    NA    NA    NA

all.env$ST
[1] 19.40 19.70 19.69 20.86 19.95 20.22 21.04    NA 21.79 20.34 19.55 20.14 21.12 21.03 20.78
[16]    NA    NA    NA 20.24 20.28 20.43 21.52 21.56 21.11    NA    NA    NA 17.63 18.11 18.97
[31] 18.27 18.19 19.22 19.46    NA 20.16 18.93 18.81 19.50 19.70 19.99    NA    NA    NA    NA
[46] 18.06 18.43 18.83 20.56 20.78 19.42    NA    NA    NA    NA 18.12    NA    NA 18.09    NA
[61] 19.11    NA 19.90 18.78    NA 19.48 19.62    NA    NA    NA    NA    NA 17.91 18.18 18.61
[76] 20.44 21.17 19.35    NA    NA    NA

首先我将一些数据重新分类为因子

all.env$Site<-as.factor(all.env$Site)    
all.env$Type <- as.factor(all.env$Type)    
all.env$Slope<- as.factor(all.env$Slope)    
summary(all.env)

做PCA

pcan <- rda(pcaall[7:72])    
pcan

RDA

pca.rda <- rda(pcan ~ .,data = all.env, scale=FALSE)

之后我收到错误消息

  

na.fail.default中的错误(列表(Plot = c(7L,8L,9L,34L,35L,36L,61L ,:     对象中缺少值

我也尝试使用这两列的中位数值。

`all.env$SM[is.na(all.env$SM)] <- median(all.env$SM, na.rm=TRUE)`
`all.env$ST[is.na(all.env$ST)] <- median(all.env$ST, na.rm=TRUE)`

RDA

`pca.rda <- rda(pcan ~ .,data = all.env, scale=FALSE)`

仍然,我收到了错误消息。

colMeans中的错误(x,na.rm = TRUE):'x'必须是数字

2 个答案:

答案 0 :(得分:2)

您可以尝试使用数据集中的中值替换缺少的(NA)数据:

all.env[is.na(all.env)] <- median(all.env, na.rm=TRUE)

答案 1 :(得分:-1)

我不清楚您的数据是什么样的,但此错误(x必须是数字)始终与数据框内的非数字值相关。 PCA和RDA不适用于因子,只有数值变量。

首先,您应该注意导入您的数据。如果从.txt文件导入数据,只需用NA填充缺失的值单元格,R将创建数字变量。如果您使用的是.xls(x)文件,则包需要对NA值进行不同的处理(请阅读帮助)。

这可能会解决问题。但更多信息将更容易提供帮助。