【问题标题】:How to deal with missing value error - vegan::rda()如何处理缺失值错误 - vegan::rda()
【发布时间】:2016-09-01 07:08:17
【问题描述】:

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

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

na.fail.default(list(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(list(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”必须是数字

【问题讨论】:

  • 请提供一些示例数据并解释您为获得此错误而采取的步骤。如果您的方法要求您的数据中没有缺失值,那么您需要自己估算:en.wikipedia.org/wiki/Imputation_(statistics)
  • 谢谢,请看我的编辑。

标签: r


【解决方案1】:

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

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

【讨论】:

  • 谢谢,我试过了。但仍然得到错误消息“colMeans(x,na.rm = TRUE)中的错误:'x'必须是数字”
【解决方案2】:

我不清楚您的数据是什么样的,但这个错误(x 必须是数字)总是与数据框中的非数字值有关。 PCA 和 RDA 不适用于因子,仅适用于数值变量。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    相关资源
    最近更新 更多