【发布时间】:2013-08-20 05:10:54
【问题描述】:
我正在 R 中对缺少数据的向量进行主成分分析。我想从主成分中提取分数,并将值与原始帧中没有丢失的观察值匹配,但我不知道如何提取和匹配正确的标识符。例如:
x1 <- c(1,2,3,NA, 5,6,7)
x2 <- c(7,NA,6,NA, 4,3,2)
frame <- cbind(x1,x2)
pca_ob<- princomp(~frame)
pca_ob$score[,1]
这会产生以下输出:
1 3 5 6 7
4.273146 2.104705 -0.715732 -2.125950 -3.536168
我想根据标识符将 pca_ob$score[,1] 与原始帧绑定,并用 NA 填充其余部分,以便生成以下矩阵:
x1 x2 x3
1 1 7 4.273146
2 2 NA NA
3 3 6 2.104705
4 NA NA NA
5 5 4 -0.715732
6 6 3 -2.125950
7 7 2 -3.536168
这会获取第一组分数的输出并将它们匹配回框架,其中 NA 填充所有没有 pca 分数的点并匹配有分数的变量。有什么想法吗?谢谢。
【问题讨论】:
-
我可以看到您正在尝试,但仍然不太清楚您在问什么。也许如果您提供了一个简短的示例输入和您想要实现的输出。通常,R PCA 例程会为您返回一个旋转矩阵、比例和方法,可用于从 PC“倒退”回数据,或从新数据到 PC。
-
嗨,保罗 - 我刚刚编辑了它,所以希望这能更清楚地解释问题。谢谢
-
我做了
goodFrame<-na.omit(frame)并从 goodFrame 获得了相同的 pca 分数,因此 R 完全删除了您丢失的数据以计算 PCA。 -
确实,这就是正在发生的事情,这不是问题。我只想将 PCA 分数的向量重新绑定到带有 NA 的向量,并在它们的标识符上匹配它们。在上面的输出中,您可以看到 PCA 为元素 1、3、5、6、7 生成值。我的问题是如何将它们与另一个向量中的元素 1、3、5、6、7 相匹配,并为元素 2 和 4 引入 NA。
-
不幸的是,R 中真正基本的数据操作往往是曲折的小段落迷宫