我需要逐个元素粘贴两个数据帧的内容以输入到另一个程序。我有一个平均值数据框和一个平均值标准误差数据框。
我尝试使用 R Paste() 函数,但它似乎无法处理数据框。使用向量时,似乎将第一个向量的所有元素连接到一个字符串中,并将第二个向量的所有元素连接到一个单独的字符串中。相反,我需要将两个数据框中的每个倒数元素连接在一起。
对于如何解决这个问题有什么建议吗?我已经包含了虚拟输入数据(datMean 和 datSE)和我想要的输出(datNew)。我的真实数据框大小约为 10 行 x 150 列。
# means and SEM
datMean <- data.frame(a=rnorm(10, 3), b=rnorm(10, 3), d=rnorm(10, 3))
datSE <- data.frame(a=rnorm(10, 3)/100, b=rnorm(10, 3)/100, d=rnorm(10, 3)/100)
# what the output should look like
# i've chosen some arbitrary values here, and show only the first row.
datNew <- data.frame(a="2.889-2.926", b="1.342-1.389", d="2.569-2.576")
这个想法是 datNew 中的每个元素都是由 'mean - se' 和 'mean + se' 组成的范围,并用破折号 '-' 分隔。 Paste() 函数可以对一个元素执行此操作,如何在整个数据帧上执行此操作?
paste(datMean[1,1] - datSE[1,1], datMean[1,1] + datSE[1,1], sep="-")
EDIT 1:看了一些答案,我意识到我在问题中遗漏了一些重要的信息。原始数据帧的每一行都被命名,我需要用这些名称重建最终的数据帧。例如:
rownames(datMean) <- LETTERS[1:10]
rownames(datSE) <- LETTERS[1:10]
我需要 datNew 最终再次拥有这 10 个行名。对于某些使用 Melt() 的解决方案来说,这可能会出现问题。