2016-05-06 28 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值進行不同的處理(請參閱幫助)。

這可能會解決問題。但更多的信息會更容易幫助。