如何在R中快速汇总多个数据帧

时间:2013-02-04 20:21:09

标签: r csv dataframe summary

提前感谢您提供任何帮助。我想简单地总结R中的多个数据帧我有一个我正在阅读的文件,其输出如下:

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

我将正在读取的.csv文件保存到变量“data”中。一旦我读取数据,我将其分成另外两个变量(“true”和“false”),具体取决于GENERIC列是真还是假。我想要做的是有效地总结三个不同数据框中的一些列。目前我使用:

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

总结数据。这个方法现在很好,但我会有更多的变量,看起来我应该能够循环它或连接数据框的一些方法。

2 个答案:

答案 0 :(得分: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))

答案 1 :(得分: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")