如何解决R中的主成分分析图
我需要一个 PCA 图来显示数据是否以及如何按人群(AFR_ACB、AFR_ASW 等)聚类我还需要每个人群的不同颜色和人群颜色的图例。如果我可以为所有非洲人口、美国人口、亚洲人和欧洲人添加一个框架也很好,因为我的真实数据由所有这些人口组成
我从结果文件创建的 csv (TLR9.csv) 文件中有以下格式的数据。实际上,有 26 列(26 个种群)和 1522 行。
nuc_pos AFR_ACB AFR_ASW AMR_PUR AMR_PEL EAS_CHS EAS_JPN EUR_FIN EUR_CEU AMR_MXL AMR_PEL AMR_PUR EAS_CDX EAS_CHB EAS_CHS
42809473 0 0 0 0 0 0 0 0 0 0 0 0 0.00971 0
42809498 0.01042 0 0.0201 0.00885 0 0.03488 0.00926 0 0 0 0 0 0 0
42809524 0 0 0 0 0.0201 0 0.00926 0 0 0 0 0 0 0
42809625 0 0 0 0 0 0 0 0.08192 0.01563 0.02339 0.02857 0 0 0
42809638 0 0 0 0.00885 0 0 0 0 0 0 0 0 0 0
42809715 0.30628 0.20485 0.34743 0.36531 0.19059 0.36199 0.34729 0.02116 0.01563 0 0.06536 0 0 0
42809846 0 0 0 0 0 0 0 0 0 0 0 0 0.00971 0.00952
42809910 0 0 0 0 0 0 0 0 0 0.01176 0 0 0 0
42809911 0 0 0 0 0 0 0 0 0 0 0 0 0 0
42809964 0.30628 0.20485 0.34743 0.36531 0.20638 0.38016 0.35241 0.02116 0.01563 0 0.06536 0 0 0
42810034 0.30628 0.20485 0.34743 0.36531 0.19059 0.34918 0.34729 0.02116 0.01563 0 0.06536 0 0 0
42810082 0 0 0 0 0 0.02339 0 0 0 0 0 0 0 0
42810098 0 0 0 0 0 0 0 0 0 0 0 0 0 0
42810103 0 0 0 0 0.0101 0 0 0 0 0 0 0 0 0
42810184 0 0 0 0 0.03 0 0 0 0 0 0 0 0 0
42810189 0.30628 0.20485 0.34743 0.36531 0.19853 0.34918 0.34729 0.02116 0.01563 0 0.06536 0 0 0
42810233 0 0 0 0 0 0 0 0 0 0 0 0 0 0
我使用以下代码制作了 PCA 图:
df <- read.csv('TLR9.csv')
pca_res <- prcomp(df,scale. = TRUE)
autoplot(pca_res,data = df,loadings = TRUE,loadings.label = TRUE,frame = TRUE,label = TRUE,shape = FALSE,label.size = 2,loadings.label.size = 3)
对于这种类型的分析,输入文件格式是否正确?将所有 26 个种群作为主成分是否也正确?
我尝试过其他 R 软件包,其中教程更好地解释了如何在 R 上制作 PCA,但它们与我拥有的 R 版本不兼容。所以,我尝试了这个并且它有效,但我不确定输出是否应该是这样。
这是我第一次做 pca,我对 R 不是很熟悉。任何帮助将不胜感激。提前致谢!
解决方法
首先,我无法使用您的数据集,因为您没有将其提供给我们。所以我在下面提供了一个
首先,这在 library(FactoMineR)
中很容易完成。
加载数据框
df <- read.table("https://pastebin.com/raw/6aukL6YW",header=T)
library(FactoMineR) # load package
names(df) notice I have one column called "treatment",the others are columns filled with data
运行 PCA
x <- PCA(df,quali.sup=1) # the quali.sup= is referring to "which column do you want to refer to as a category (and each category is automatically assigned a color),in your case,this would be "population"
您还可以使用直接集成在 FactoMineR 包中的 plot.PCA()
命令制作散点图
plot.PCA(x,axes=c(1,2),cex=1,choix="ind",habillage=1) # habillage is referring the which column you want to treat as a factor,and it also will assign different colors,(again in your case,"population
and this plot automatically adds a legend
最后,您可以绘制一个图,再次使用 plot.PCA()
plot.PCA(x,choix='var',select='contrib 2') # top 2 contributors of variation,the rest are not shown in bold,could do 5,10,etc..
然后你去...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。