我需要按元素粘貼兩個數據框的內容以便輸入到另一個程序。我有一個手段的數據框架和平均值的標準錯誤的數據框架。將兩個數據框粘貼在一起R中的元素
我嘗試使用R paste()函數,但它似乎無法應付數據幀。在使用矢量時,它似乎將第一個矢量的所有元素連接成一個字符串,將第二個矢量的所有元素連接成一個單獨的字符串。相反,我需要將兩個數據幀中的每個相互元素連接在一起。
有關如何解決此問題的任何建議?我已經包含虛擬輸入數據(datMean和datSE)和我所需的輸出(datNew)。我的真實數據框大小約爲10行×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每個元素是由以下組成的範圍「的意思 - SE」和「平均值±SE」,用破折號分開「 - 」。 paste()函數可以爲一個元素做到這一點,如何在整個數據框中做到這一點?
paste(datMean[1,1] - datSE[1,1], datMean[1,1] + datSE[1,1], sep="-")
編輯1: 看一些我知道我離開了一個重要的信息位的問題的答案。原始數據幀的每一行都被命名,我需要用這些名稱重構最後的數據幀。例如:
rownames(datMean) <- LETTERS[1:10]
rownames(datSE) <- LETTERS[1:10]
我需要datNew最終再次擁有這10個rownames。對於使用熔體()的一些解決方案,這可能會有問題。
中使用參數'sep =「」'非常感謝這個 - 我決定接受這個作爲最好的答案,因爲它不依賴於外部包並且比替代方案更快,因爲它不依賴於應用程序或循環。 + 1 for formatC(),我以前沒有看過,格式也好多了。 – Steve