我有以下数据:
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)***
答案 0 :(得分:2)
由于data.frame
不能有重复的行名,因此最好将其存储在matrix
中。我们获得数据集的转置(t
),创建具有单个列的matrix
,并通过rbind
用空白({ {1}})
""
答案 1 :(得分:1)
这是使用lapply
,t
,do.call
和noquote
的基本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")))