首页 > 其他分享 >R:PCA(第三版)

R:PCA(第三版)

时间:2024-03-22 15:44:47浏览次数:16  
标签:rename dplyr frame 第三版 library PCA

# 清除所有变量
rm(list = ls()) 
# 设置工作目录
setwd("C:\\Users\\Administrator\\Desktop\\新建文件夹\\PCA_Pathway") 

# 1. 加载所需的库
library(vegan)
library(tidyverse)
library(ggpubr)
library(patchwork)
library(ggforce)


# 2. 读取和处理数据
otu <- read.table("./1.txt", row.names = 1, sep = "\t", header = TRUE) %>% as.data.frame()
map <- read.table("./group.txt", sep = "\t", header = TRUE) 
colnames(map)[1] <- "ID" 
row.names(map) <- map$ID 
idx <- rownames(map) %in% colnames(otu) 
map1 <- map[idx,]
otu <- otu[, rownames(map1)]

# 3. 绘制PCA图
otu_centered <- scale(t(otu), scale = TRUE)
pca <- prcomp(otu_centered)
summary_pca <- summary(pca)
points <- as.data.frame(pca$x) %>% dplyr::rename(x = "PC1", y = "PC2")
points <- cbind(points, map1[match(rownames(points), map1$ID),]) 
colors <- c("B73_DAS28"="#8FC9E2","B73_DAS42"="#8FC9E2","B73_DAS56"="#8FC9E2","B73_DAS70"="#8FC9E2","Mo17_DAS28"="#ECC97F","Mo17_DAS42"="#ECC97F","Mo17_DAS56"="#ECC97F","Mo17_DAS70"="#ECC97F")
shapes <- c("B73_DAS28"=24, "B73_DAS42"=22, "B73_DAS56"=21, "B73_DAS70"=23, "Mo17_DAS28"=24, "Mo17_DAS42"=22, "Mo17_DAS56"=21, "Mo17_DAS70"=23)
levels_order <- c("B73_DAS28", "B73_DAS42", "B73_DAS56", "B73_DAS70", "Mo17_DAS28", "Mo17_DAS42", "Mo17_DAS56", "Mo17_DAS70")
points$Group <- factor(points$Group, levels = levels_order)

# 在ggplot中使用这些形状和颜色进行绘制
p1 <- ggplot(points, aes(x = x, y = y, fill = Group, shape = Group)) + 
  geom_point(alpha = .7, size = 6) + 
  scale_shape_manual(values = shapes) + 
  scale_fill_manual(values = colors) +
  labs(x = paste("PC1 (", format(summary_pca$importance[2, 1] * 100, digits = 4), "%)", sep = ""),
       y = paste("PC2 (", format(summary_pca$importance[2, 2] * 100, digits = 4), "%)", sep = "")) +
  geom_mark_ellipse(aes(fill = Group, label = Group), alpha = 0.1, color = "grey", linetype = 3) +
  theme_bw() +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.text = element_text(color = "black", size = 12),
        axis.title = element_text(size = 16),
        legend.text = element_text(size = 14),
        legend.title = element_blank(), 
        panel.border = element_rect(colour = "black", fill = NA, linewidth = 2),
        axis.ticks = element_line(linewidth = 2),
        legend.key.size = unit(1, "cm")) +
  coord_cartesian(xlim = c(-max(abs(points$x)) * 1.1, max(abs(points$x)) * 1.1), ylim = c(-max(abs(points$y)) * 1.1, max(abs(points$y)) * 1.1)) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "black") +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black")

# 显示绘制的图
p1

# 保存PCA图
ggsave(filename = "PCA_plot.png", plot = p1, width = 10, height = 8, units = "in", dpi = 600)

 

标签:rename,dplyr,frame,第三版,library,PCA
From: https://www.cnblogs.com/wzbzk/p/18089629

相关文章

  • 课程设计——基于matlab语言的PCA人脸识别系统的设计与实现,采用GUI界面进行效果演示
    本论文源码是基于Matlab实现的PCA算法来进行人脸图片的识别与比对,通过GUI界面进行效果展示,适合基于matlab、人脸识别等人工智能领域的课程设计和毕设,整个算法结构简单、易于理解,如需完整源码,可以联系博主获取。一、引言人脸识别技术作为计算机视觉领域的一个重要分支,因其......
  • PCA碎石图
    碎石图(ScreePlot)是一种用于主成分分析(PCA)的可视化工具,它帮助我们决定在数据集中保留多少个主成分(PCs)是合适的。在PCA中,每个主成分都代表数据中的一个方差来源,第一个主成分解释了数据中最大的方差部分,第二个主成分解释了剩余方差中最大的部分,依此类推,每个后续的主成分都解释了在......
  • 主成成分分析(PCA 数据降维)
    在很多场景中需要对多变量数据进行观测,在一定程度上增加了数据采集的工作量。更重要的是:多变量之间可能存在相关性,从而增加了问题分析的复杂性。主成分分析(PrincipalComponentsAnalysis,PCA)是一种使用最广泛的数据降维算法(非监督的机器学习方法)。旨在降低数据的维数,通过保......
  • DMA第三版代码
    第二版相较第一版:增加了仲裁和更多的参数化;第三版相较第二版:统一输入位宽,把位宽转换模块放在外面明显更方便;转来转去的事情以后不在dma里做了!1`timescale1ns/1ps23moduledma_complex#4(5parameterWR_Base_addr......
  • Python数据降维之PCA主成分分析【附代码】
    目录1、数据降维(1)PCA主成分分析原理介绍1、二维空间降维2、二维空间降维3、n维空间降维(2)PCA主成分分析代码实现1、二维空间降维Python代码实现2、三维空间降维Python代码实现2、案例 -人脸识别模型(1)背景(2)人脸数据读取、处理与变量提取1、读取人脸照片数据2、人......
  • “傻瓜”学计量——主成分分析法PCA(原理+实操)
    提纲:1.PCA原理2.视频推荐:PCA原理   spass操作    stata操作+matlab实操1.背景在一些领域中,需要对大量数据进行观测。但是可能会带来变量之间具有相关性、分别对每个指标分析带来的偏误,等问题。因此,要寻找一个合理的方法,在减少需要分析的直白哦的同时,尽量减少......
  • R语言聚类分析、因子分析、主成分分析PCA农村农业相关经济指标数据可视化
    全文链接:https://tecdat.cn/?p=35360原文出处:拓端数据部落公众号随着农业和农村经济的快速发展,各地区之间的经济差异日益显著。为了更好地理解这种差异,并为政策制定提供科学依据,本研究帮助客户采用了聚类分析和因子分析、主成分分析3种无监督学习方法,对多个省份的农业、林业、牧......
  • R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
    全文链接:https://tecdat.cn/?p=35263原文出处:拓端数据部落公众号本研究旨在帮助客户利用房价数据集进行数据分析,该数据集包含82个变量和2930个数据点。研究目标是通过分类算法将房价分为两个类别。在数据预处理阶段,排除了Order、PID和SalesPrice等变量,对数据进行整合和转换以适......
  • 安卓使用HttpCanary进行抓包
    IOS抓包软件Stream的安装与使用使用「Stream」进行IOS抓包同样的代码,有时候在安卓端会出现不同的问题,所以还需要进行安卓的抓包另外安卓非Root用户的抓包比较麻烦,需要安装指定版本的HttpCannary(小黄鸟)HttpCanary介绍1、观看抓包软件的結果还能抓取音频以及视频。2、可以自动式......
  • Kotlin学习, 新手向,变量总汇,基于《第一行代码Android(第三版)》
    作者做的思维导图变量val和var区别valvalue不可变变量varvariable可变变量变量的自动类型推导(弱)vala=10;print("a="+a);变量的显式声明(强)vala:Int=10;数据类型注意和java不同,这些都是对象数据类型,大写开头:IntShortLongFloatDoubleB......