我使用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)
pcan <- rda(pcaall[7:72])
pcan
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)`
`pca.rda <- rda(pcan ~ .,data = all.env, scale=FALSE)`
仍然,我收到了错误消息。
colMeans中的错误(x,na.rm = TRUE):'x'必须是数字
答案 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值进行不同的处理(请阅读帮助)。
这可能会解决问题。但更多信息将更容易提供帮助。