#首先我们需要安装下面这两个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 #根据样本类型来着色
)