当前位置: 首页 > 知识库问答 >
问题:

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

景靖琪
2023-03-14

我有一个数据框,行名称中有单元格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
dput(df) 
structure(list(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 <- matrix(1:9, nrow = 3,dimnames = list(c("Gene1","Gene2","Gene3"), c("ACCTTAC","ACCGTGG","AGTCGGG"))) 

共有1个答案

龙宣
2023-03-14

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

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
 类似资料:
  • 我在R中有两个数据帧,我想把它们转换成矩阵。这是我手上的示例数据 一个data.frame有2列,一列有名称,第二列有一些分数。 其他数据帧为一列,包含上述数据帧的的半名称。 我想要结果矩阵/数据。框架类似于下面的内容。我要切掉第一个数据。框架的第一列包含第二个数据。框架的列,并创建一个如下所示的矩阵。 任何帮助都将不胜感激。任何或解决方案都可以工作。 非常感谢。

  • 我有一个尺寸为3695 X 20的数据框。第一列包含字母数字标识符,其他19列都是数字。因此,rownames(df)提供数字1-3695,colnames(df)提供列的名称。df[,1]提供字母数字标识符。 我希望将数据框转换为矩阵,并使用现有数据框的第1列作为新矩阵的行名称,并将数据框的列名保留为矩阵的列名。 我还想自动化这个过程,用于类似但不同维度的数据帧。因此,如果解决这个问题需要知道行

  • 我有一个事件日志数据框,每行是一个事件(如查看项目),其中包含列,,以及用户分配项目的。我想创建一个表示所有用户-项目交互的数据框:表示为二维矩阵,每个(i,j)表示用户i和项目j的分数(下图截图)。如果用户尚未看到该产品,则分配NaN。 我试过用循环做这件事,但正如预期的那样,运行时间太长: 有没有更快的方法? 根据评论中的要求,我的数据帧的头部<代码>事件类型与上述分数类似。

  • 示例数据: 我想计算每个唯一列名称的平均值和标准偏差(忽略NA)以获得如下输出: 可再现数据: 我得到的最接近的是 这是我从这篇文章中得到的,但我不知道如何调整它来得到我想要的。我知道我可以取rowmeans的平均值来得到每组的平均值,但这不适用于标准差。

  • 我有一个带有两个变量X和Y的pandas数据帧(大约1M行),并且希望使用scipy,sparse创建一个稀疏矩阵。输出应该是一个n x m矩阵,如果x=x和Y=Y,则其条目为1。 下面是数据结构的示例 所需的输出为 提前致谢

  • 问题内容: 我有一个熊猫数据框,看起来像这样: 一千行左右,六列。大多数单元格为空(NaN)。考虑到不同的列中包含文本,我想知道每列中文本的概率是多少。例如,这里的小片段将产生如下内容: 也就是说,Al01栏中有4个匹配项;在这4个匹配中,BBR60列中没有匹配,CA07列中也没有匹配,NL219列中有3个匹配。等等。 我可以遍历每一列并使用值构建字典,但这似乎很笨拙。有没有更简单的方法? 问题答