You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中使用factoextra根据列值识别PCA得分

验证PCA得分与数据行的对应关系并按ID查找得分

核心逻辑

FactoMineR::PCA()生成的个体得分(ind$coord)严格保持与输入数据的行顺序一致,但可以通过绑定唯一ID的方式直观验证并方便后续按ID查询。

具体实现步骤(基于你的iris示例)

  1. 加载依赖包(注意PCA()函数来自FactoMineR,factoextra是辅助可视化工具)
library(FactoMineR)
library(factoextra)
  1. 生成带ID的数据集并完成PCA
# 添加唯一ID列(模拟你的Demonstrator.ID)
iris$ID <- runif(150, 0, 100)

# 执行PCA,排除Species和ID列
is.pca <- PCA(iris[, -c(5, 6)], scale.unit = TRUE, graph = FALSE)
  1. 合并得分与原数据的ID列
    把PCA得分和原数据的ID绑定,得到带标识的得分数据框:
# 提取个体得分
pca_scores <- as.data.frame(is.pca$ind$coord)
# 绑定原数据的ID列(确保行顺序一致)
pca_scores_with_id <- cbind(iris$ID, pca_scores)
# 重命名ID列方便识别
colnames(pca_scores_with_id)[1] <- "ID"
  1. 验证对应关系
    通过对比原数据和得分数据框的行确认对应性:
# 查看前3行的原数据ID和得分数据框ID
head(iris$ID, 3)
head(pca_scores_with_id$ID, 3)

两者完全一致,说明得分与原数据行一一对应。

  1. 按ID查找特定得分
    模拟你的"Demonstrator.ID"查询需求,查找目标ID对应的PCA得分:
# 假设要查找的目标ID(可替换为你的"Demonstrator.ID"值,比如"Dom Female G1")
target_id <- pca_scores_with_id$ID[1]
# 筛选对应得分
target_scores <- pca_scores_with_id[pca_scores_with_id$ID == target_id, ]
print(target_scores)

扩展:直接关联原数据所有列

如果需要保留原数据的其他信息,也可以直接把得分合并到原数据框:

iris_with_pca <- cbind(iris, pca_scores)
# 按ID筛选指定列
iris_with_pca[iris_with_pca$ID == target_id, c("ID", "Dim.1", "Dim.2")]

内容的提问来源于stack exchange,提问作者Kitt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:09:54