2016-05-06 30 views
2

我用VeganR包来分析我的数据。但是我的数据中有一些缺失值,所以当我使用功能rda时。 输出是这样的:如何处理缺失值错误 - 素食主义者:: rda()

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

错误na.fail.default(列表(剧情= 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) 

这个我得到错误信息

错误呐后。 fail.default(列表(剧情= 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' 必须是数字

+1

请提供一些示例数据并说明您为获取此错误所采取的步骤。如果您的方法要求您的数据中没有缺失值,那么您需要自行估算这些值:https://en.wikipedia.org/wiki/Imputation_(statistics) – niczky12

+0

谢谢,请参阅我的编辑。 – Zhuli

回答

2

你可以尝试从数据集与中间值代替缺失(NA)数据:

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

谢谢,我已经试过了。但仍然得到错误按摩“colMeans中的错误(x,na.rm = TRUE):'x'必须是数字” – Zhuli

-1

我不清楚你的数据是怎么样的,但是这个错误(x必须是数字)始终与数据框内的非数字值相关。 PCA和RDA不能使用因子,只能使用数字变量。

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

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