PCA图报错Error in `[.data.frame`(X$call$X, rownames(ind), grp, drop = FALSE) : 选择了未定义的列

#首先我们需要安装下面这两个R包
install.packages("factoextra")
install.packages("FactoMineR")
#加载这两个R包
library(FactoMineR)
library(factoextra)
iris<- read.csv("C:/Users/63035/Desktop/Cr污染/冗余分析/FRS数据.csv",row.names = 1)

Treat<-data.frame(iris$Treatment)
Group<-data.frame(iris$Group)
head(iris)
#做PCA分析,第五列为物种,非数值属性需要去除
iris.pca <- PCA(iris[,4:22], graph = T)
#绘制主成分碎石图,查看每一个主成分能在多大程度上代表原来的特征
#第一个主成分就可以保留原来特征73%的信息
fviz_screeplot(iris.pca, addlabels = TRUE, ylim = c(0, 80))
#查看样本的主成分分析结果
var <- get_pca_var(iris.pca)
#查看特征分布
fviz_pca_var(iris.pca)
#原始特征在新的坐标空间(PC1,PC2...)中的坐标位置
var$coord
#查看每一个特征对每一个主成分的贡献程度
var$contrib
#查看样本在新空间中的分布
fviz_pca_ind(iris.pca,
             mean.point=F,#去除分组的中心点,否则每个群中间会有一个比较大的点
             label = "none", #隐藏每一个样本的标签
             habillage = iris$Group, #根据样本类型来着色
             palette = c("#00AFBB", "#E7B800", "#FC4E07")#三个组设置三种颜色
)

运行后出现报错:

Error in `[.data.frame`(X$call$X, rownames(ind), grp, drop = FALSE) : 
  选择了未定义的列

解决方法:上一步代码替换为↓

fviz_pca_ind(iris.pca,
             mean.point = F, #去除分组的中心点,否则每个群中间会有一个比较大的点
             label = "none",  #隐藏每一个样本的标签
             palette = c("#00AFBB", "#E7B800", "#FC4E07"),  #三个组设置三种颜色
             geom.ind = "point",  
             col.ind = iris$Group #根据样本类型来着色
)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值