R语言 更新df,删除我的原始行,names

iecba09b  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(101)

为了实现这一目标,我需要执行一个聚类过程,然后将元数据关联到一个新的df,以便对热图进行注解。
我有这样几行代码:

hclust_col <- cutree(tree = as.dendrogram(hclust_cyto), k = 2)

字符串
其中,输出为:

op1 2020 G4 op104 2020 G4 op105 2020 G4 op106 2020 G4  op18 2020 G4   op2 2020 G4 
            1             1             2             1             1             2


然后,我可以创建一个df,它允许我关联每个集群的信息:

my_gene_col <- data.frame(cluster = ifelse(test = my_gene_col == 1, 
                                           yes = "cluster 1", no = "cluster 2"))


其中,输出为:

op1 2020 G4 cluster 1
op104 2020 G4 cluster 1
op105 2020 G4 cluster 1


现在,我尝试执行k = 4 or more,一切都很好,但是,当我尝试使用每个集群的信息创建新的df时,我需要更改代码以自动将集群分配给每行。为了实现这一点:

hclust_col_1 <- data.frame(cluster = paste("cluster", hclust_col))


这是我的问题,因为这种方法删除了我原来的row.names
在这一步中,我失去了我原来的行名称。我的问题是:

  • 我做错了什么?
  • 我怎么能保留这一行。名字?
cbwuti44

cbwuti441#

paste函数从vector中剥离属性。您需要在data.frame函数中使用row.names参数来传入行名称:

data.frame(cluster = paste("cluster", hclust_col), row.names = names(hclust_col))

                cluster
op1 2020 G4   cluster 1
op104 2020 G4 cluster 1
op105 2020 G4 cluster 2
op106 2020 G4 cluster 1
op18 2020 G4  cluster 1
op2 2020 G4   cluster 2

字符串

相关问题