将R中的两个元素合并为一列

时间:2018-07-01 01:06:58

标签: r dataframe

我有以下数据:

df <- data.frame(estimate = c(1,2), sd = c("(0.5)*","(0.5)***"))
rownames(df) <- c("race","gender")

我想通过将两列逐元素合并为一个日记质量表。所需的输出将是:

         Results  
race     1
         (0.5)*
gender   2
         (0.5)***

2 个答案:

答案 0 :(得分:2)

由于data.frame不能有重复的行名,因此最好将其存储在matrix中。我们获得数据集的转置(t),创建具有单个列的matrix,并通过rbind用空白({ {1}})

""

答案 1 :(得分:1)

这是使用lapplytdo.callnoquote的基本R方法:

out <- noquote(do.call('rbind',lapply(1:dim(df)[1],function(x) t(df[x,]))))
  attr(out,'dimnames') <- list(c(rbind(row.names(df),"")),'Results')

       Results 
race   1       
       (0.5)*  
gender 2       
       (0.5)***

更新

@akrun的answer比我的整整齐齐,但是他得到的矩阵元素全都用引号引起了!结合我对他的回答中的 noquote() 函数,您便可以找到所需的内容!

 noquote(matrix(c(t(df)), dimnames = list(c(rbind(row.names(df), "")), "Results")))