我正在尝试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时,我丢失了一些列的订单。
答案 0 :(得分:0)
解决此问题的一种非常快捷方法是使用列(变量)中位数替换缺失值。 zoo
包有一个很好的函数na.aggregate()
。假设您的矩阵称为mat
。
library(zoo)
na.aggregate(mat, FUN = median)
当然,你应该找出为什么你的价值观缺失,以便最恰当地归咎于它们,特别是如果它们有很多。