诺坎普的夜 2023-08-09 15:53 采纳率: 50%
浏览 4

R语言将第二列作为行分组的依据

请问如何将第二列数据作为行分组的依据,做出这种图。
这是原代码

rm(list=ls())
library(pheatmap)
setwd("E:/software/R/heatmap")
dataset <- read.table('DXW.txt',header = TRUE, row.names = 1)
exp_ds = dataset[c(1:30),c(1:5)]
Group=c(rep('ori',1),
        rep('R',4))
annotation_c <- data.frame(Group)
rownames(annotation_c) <- colnames(exp_ds)
pheatmap(exp_ds, 
         cluster_rows = T,
         cluster_cols = F,
         annotation_col =annotation_c,
         annotation_legend=TRUE,
         show_rownames = T,
         show_colnames = T,
         scale = "row",
         color =colorRampPalette(c("#8854d0", "#ffffff","#fa8231"))(100) 
)

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-09 23:34
    关注

    【以下回答由 GPT 生成】

    首先,你可以使用dplyr包中的group_by函数按照第二列进行分组。然后,根据分组情况,你可以使用split函数将数据按照分组的结果进行分割,然后分别生成相应的热图。

    下面是具体的解决方案:

    library(pheatmap)
    library(dplyr)
    
    # 设置工作目录
    setwd("E:/software/R/heatmap")
    
    # 读取数据
    dataset <- read.table('DXW.txt', header = TRUE, row.names = 1)
    
    # 选择需要的列和行
    exp_ds <- dataset[c(1:30), c(1:5)]
    
    # 进行分组
    exp_ds_grouped <- exp_ds %>% group_by(exp_ds[, 2])
    
    # 获取分组的唯一值
    group_values <- unique(dataset[, 2])
    
    # 根据分组进行数据拆分和热图绘制
    for (group in group_values) {
      group_data <- exp_ds_grouped %>% filter(exp_ds_grouped[, 2] == group) %>% select(-exp_ds_grouped[, 2])
    
      # 创建相应的注释数据集
      annotation_c <- data.frame(Group = rep(group, ncol(group_data)))
      rownames(annotation_c) <- colnames(group_data)
    
      # 绘制热图
      pheatmap(group_data, 
               cluster_rows = TRUE,
               cluster_cols = FALSE,
               annotation_col = annotation_c,
               annotation_legend = TRUE,
               show_rownames = TRUE,
               show_colnames = TRUE,
               scale = "row",
               color = colorRampPalette(c("#8854d0", "#ffffff", "#fa8231"))(100)
      )
    }
    

    通过上述代码,你可以根据第二列的不同值进行分组,并生成相应的热图。每个热图都有与分组对应的注释数据集。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月9日

悬赏问题

  • ¥15 kafka无法正常启动(只启动了一瞬间会然后挂了)
  • ¥15 开发一个类似百度网盘的软件,在主页 文件列表点击进入文件夹,在文件夹里面还有文件夹,代码该怎么写?
  • ¥30 使用matlab将观测点聚合成多条目标轨迹
  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的