我使用该prcomp()
函数在 R 中执行 PCA(主成分分析)。但是,该函数中存在一个错误,导致该na.action
参数不起作用。我在 stackoverflow 上寻求帮助;那里的两个用户提供了两种处理NA
价值的不同方式。然而,这两种解决方案的问题在于,当有一个NA
值时,该行将被删除并且在 PCA 分析中不予考虑。我的真实数据集是一个 100 x 100 的矩阵,我不想仅仅因为它包含一个NA
值而丢失一整行。
以下示例显示该prcomp()
函数不返回第 5 行的任何主成分,因为它包含一个NA
值。
d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10),
V3 = sample(1:100, 10))
result <- prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x # $
d$V1[5] <- NA # $
result <- prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)
result$x
我想知道我是否可以将这些NA
值设置为一个特定的数值 whencenter
和scale
设置为TRUE
以便prcomp()
函数工作并且不会删除包含NA
's 的行,但也不影响 PCA 分析的结果。
我考虑用NA
单个列中的中值或非常接近 0 的值替换值。但是,我不确定这会如何影响 PCA 分析。
有人能想出解决这个问题的好方法吗?