我使用该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
值的含义:“缺失”的原因是什么?