2013-02-04 130 views
0

在此先感謝您的幫助。我想簡單地總結r多個數據幀我有在正在讀文件有一個像這樣的輸出:如何在R中快速彙總多個數據幀

   NDC CHARGE GENERIC 
4060 68382006401 43.34 true 
4061 68382006401 95.04 true 
4062 68382006410 16.77 false 

我保存.csv文件所讀的變量「數據」。一旦我讀取數據,我將它分成兩個其他變量(「真」和「假」),具體取決於GENERIC列是真還是假。我想要做的是有效地總結三個不同數據框中的一些列。目前我使用:

sapply(data[,1:2], summarize) 
sapply(true[,1:2], summarize) 
sapply(false[,1:2], summarize) 

來總結數據。這種方法現在很好,但我會有更多的變量,看起來我應該只是能夠循環它或連接數據幀如何。

+0

'summarize'可能是一個包(甚至可能是Hmisc)。 –

回答

2

您可以將data.frames放在列表中,例如,

dat <- data.frame(x=1:5,y=5:1) 

datlist <- list(dat,dat,dat) 

那麼你就可以在lapply所有data.frames運行功能:

lapply(datlist, function(x) sapply(x[,1:2], summary)) 

一個不錯的簡單的方法來把所有的結果返回連成一片data.frame與包plyr

library(plyr) 
ldply(datlist, function(x) sapply(x[,1:2], summary)) 
+0

謝謝,這就是我一直在尋找的 – user2040842

0

這只是一個猜測,考慮到這個問題的各種含糊之處,但也許:

sapply(data[,1:2], summarize) 
sapply(data[data$GENERIC="true", 1:2], summarize) 
sapply(data[data$GENERIC="false", 1:2], summarize) 

最好給數據對象命名「數據」以外的東西。在這個話題上甚至有一筆財富,這種命名行爲是永恆的。

install.packages("fortunes") 
require("fortunes") 
fortune("dog")