0

提前感谢您对此的任何帮助。我试图简单地总结 RI 中的多个数据帧,我正在读取一个文件,该文件具有如下输出:

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

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

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

总结数据。这种方法现在很好,但我将有更多的变量,看起来我应该能够循环它或以某种方式连接数据帧。

4

2 回答 2

2

你可以把它data.frames放在一个列表中,例如

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

datlist <- list(dat,dat,dat)

然后你可以在所有 data.frames 上运行函数lapply

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

将所有结果重新组合在一起的一个很好的简单方法data.frame是使用包plyr

library(plyr)
ldply(datlist, function(x) sapply(x[,1:2], summary))
于 2013-02-04T20:34:45.410 回答
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")
于 2013-02-05T03:39:12.017 回答