具有NA的PCA在子集和数据集之间产生不匹配

时间:2016-10-27 19:29:11

标签: r pca

我正在尝试PCA中包含NA的更大数据集中的某些列。当我删除NA时,它会导致项目数量不匹配,因此我无法使用标签信息的数据集。我该如何解决这个问题?

> ef <- sepData[c(4, 5, 6, 7, 8, 9, 10)]
> autoplot(prcomp(na.omit(ef)), data = sepData, colour = 'species', label = TRUE, label.size = 3)
Error in data.frame(..., check.names = FALSE) : 
arguments imply differing number of rows: 27, 24

sepData包含每行的样本名称。当我删除省略NAs时,我丢失了一些列的订单。

1 个答案:

答案 0 :(得分:0)

解决此问题的一种非常快捷方法是使用列(变量)中位数替换缺失值。 zoo包有一个很好的函数na.aggregate()。假设您的矩阵称为mat

library(zoo)
na.aggregate(mat, FUN = median)

当然,你应该找出为什么你的价值观缺失,以便最恰当地归咎于它们,特别是如果它们有很多。