R 如何在特定行拆分热图?错误对于原子向量无效

R 如何在特定行拆分热图?错误对于原子向量无效,r,split,heatmap,R,Split,Heatmap,我正在尝试在R中构建一个热图。我想在特定行分割热图。例如,我的矩阵如下所示: 身份证 FD_1 0.3 0.2 1 FD_2 0.4 1 0.9 FD_30.60.80.2 财政司司长10.30.21 财政司司长2 0.4 1 0.9 FS_30.60.80.2 财政司司长4 0.4 1 0.9 FS_50.6 0.8 0.2 FE_1 0.30.2 1 FE_2 0.4 1 0.9 铁铀30.60.80.2 FE_40.4 1 0.9 我需要制作一个热图,包括3个切片:一个用于3个FD,一个用

我正在尝试在R中构建一个热图。我想在特定行分割热图。例如,我的矩阵如下所示:

身份证

FD_1 0.3 0.2 1

FD_2 0.4 1 0.9

FD_30.60.80.2

财政司司长10.30.21

财政司司长2 0.4 1 0.9

FS_30.60.80.2

财政司司长4 0.4 1 0.9

FS_50.6 0.8 0.2

FE_1 0.30.2 1

FE_2 0.4 1 0.9

铁铀30.60.80.2

FE_40.4 1 0.9

我需要制作一个热图,包括3个切片:一个用于3个FD,一个用于5个FS,一个用于4个FE。并将每个切片的名称标记为FD、FS和FE

我正在使用以下代码: 热图矩阵,名称=级别,行分割=矩阵$ID

但我得到了一个错误: M_矩阵$ID:$中的错误:运算符对于原子向量无效

有什么建议吗?
谢谢

如果您想要基于ID的数据帧列表,我们可以使用split


您可以根据ID列定义拆分:

图书馆综合地图 ID=cpaste0FD_uu1;,1:3,paste0FS_1;,1:5,paste0FE_1;,1:4 df我们可以使用分组法

list_df <- split(df, sub("_.*", "", df$ID))
list_df

#$FD
#    ID   A   B   C
#1 FD_1 0.3 0.2 1.0
#2 FD_2 0.4 1.0 0.9
#3 FD_3 0.6 0.8 0.2

#$FE
#     ID   A   B   C
#9  FE_1 0.3 0.2 1.0
#10 FE_2 0.4 1.0 0.9
#11 FE_3 0.6 0.8 0.2
#12 FE_4 0.4 1.0 0.9

#$FS
#    ID   A   B   C
#4 FS_1 0.3 0.2 1.0
#5 FS_2 0.4 1.0 0.9
#6 FS_3 0.6 0.8 0.2
#7 FS_4 0.4 1.0 0.9
#8 FS_5 0.6 0.8 0.2
library(dplyr)
library(stringr)
list_df <- df %>%
              group_split(grp = str_remove(ID, "_.*"), keep = FALSE)