我使用该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在center和scale设置为时将这些值设置为特定的数值,TRUE以便该prcomp()函数起作用并且不会删除包含NA的行,而且也不会影响PCA分析的结果。
我考虑过用NA单个列的中位数或非常接近0的值替换值。但是,我不确定这会如何影响PCA分析。
有人能想到解决该问题的好方法吗?
NA值的含义:“缺失”的原因是什么?