从数据帧到矩阵列名的过去值(R)

从数据帧到矩阵列名的过去值(R),r,dataframe,matrix,paste,R,Dataframe,Matrix,Paste,我有一个数据框,行名称中有单元格ID,列x中有分类 x ACCTTAC do ACCGTGG si AGTCGGG si 我还有一个矩阵,列中有细胞ID,行中有基因 ACCTTAC ACCGTGG AGTCGGG Gene1 4 5 1 Gene2 3 1 0 Gene3 3 3 1 我想粘贴来自数据框的矩阵分类的名称,请参见下面的示例 do_ACCTTAC si_ACC

我有一个数据框,行名称中有单元格ID,列x中有分类

         x
ACCTTAC  do
ACCGTGG  si
AGTCGGG  si
我还有一个矩阵,列中有细胞ID,行中有基因

      ACCTTAC ACCGTGG AGTCGGG
Gene1 4       5       1
Gene2 3       1       0
Gene3 3       3       1
我想粘贴来自数据框的矩阵分类的名称,请参见下面的示例

       do_ACCTTAC si_ACCGTGG si_AGTCGGG
Gene1  4          5       1
Gene2  3          1       0
Gene3  3          3       1
mat=matrix(c(8,4,5,6,7,9,1,8,9),nrow=3,ncol=3,byrow=TRUE)

matLes根据您的数据代码使用列名和行名:

dataframe <- data.frame(x = c("do", "si", "si"), 
                        row.names = c("ACCTTAC", "ACCGTGG", "AGTCGGG")) 
mat <- matrix(c(8,4,5,6,7,9,1,8,9),nrow = 3, ncol = 3,byrow = TRUE) 
mat <- matrix(1:9, nrow = 3,dimnames = list(c("Gene1","Gene2","Gene3"),
 c("ACCTTAC","ACCGTGG","AGTCGGG")))

dataframe$col_names <- row.names(dataframe)
for(i in 1:ncol(mat)) {
  for(j in 1:nrow(dataframe)) {
    if(row.names(dataframe)[j] == colnames(mat)[i])
      colnames(mat)[i] = paste0(dataframe$x[j],"_",dataframe$col_names[j])
  }
}

请粘贴创建数据框和矩阵的公式好吗<代码>数据帧dput(df)结构(列表(x=c(“do”,“si”,“si”),row.names=c(“ACCTTAC”,“ACCGTGG”,“AGTCGGG”),class=“data.frame”))mat=matrix(c(8,4,5,6,7,9,1,8,9),nrow=3,ncol=3,byrow=TRUE)mat请在您的问题中张贴代码完成。我在问题中添加了代码。
mat = matrix(c(8,4,5,6,7,9,1,8,9),nrow = 3, ncol = 3,byrow = TRUE) 
mat <- matrix(1:9, nrow = 3,dimnames = list(c("Gene1","Gene2","Gene3"), c("ACCTTAC","ACCGTGG","AGTCGGG"))) 
dataframe <- data.frame(x = c("do", "si", "si"), 
                        row.names = c("ACCTTAC", "ACCGTGG", "AGTCGGG")) 
mat <- matrix(c(8,4,5,6,7,9,1,8,9),nrow = 3, ncol = 3,byrow = TRUE) 
mat <- matrix(1:9, nrow = 3,dimnames = list(c("Gene1","Gene2","Gene3"),
 c("ACCTTAC","ACCGTGG","AGTCGGG")))

dataframe$col_names <- row.names(dataframe)
for(i in 1:ncol(mat)) {
  for(j in 1:nrow(dataframe)) {
    if(row.names(dataframe)[j] == colnames(mat)[i])
      colnames(mat)[i] = paste0(dataframe$x[j],"_",dataframe$col_names[j])
  }
}
> mat
      do_ACCTTAC si_ACCGTGG si_AGTCGGG
Gene1          1          4          7
Gene2          2          5          8
Gene3          3          6          9