简化示例是:
data<-data.frame(rnorm(10),rbinom(10,1,prob=.7))
sdata<-split(data[,1],data[,2])
ret <- lapply(sdata,mean)
我制作数据列和因子列。我来自SQL语言,用分组模式解决了一个任务。
lapply(sdata,mean)
是:
class(ret)
[1] "list"
str(ret)
List of 2
$ 0: num -0.146
$ 1: num -0.0572
如何从列表中再次创建数据框?
因素类型是否有限制?因素成为&#34; name&#34;列表元素和我害怕在从名称bask转换为数据框中的实际数据时丢失数据/精度。
是否有更好的方法来处理分区/分组数据然后拆分/提供?
PS 免费填写正确的问题措辞。我对R的专业写作经验不多。
@MLavoie ret <- data.frame(lapply(sdata,mean))
给了我:
> dim(ret)
[1] 1 2
我期待2x1。
lapply
中{p> @David Arenburg 函数应用程序sapply
收到的结果不仅是单列 - 而且所有和不仅单行 - 但都在组内。这种方法可能会导致性能下降,但允许任何处理逻辑。
如果我理解正确的话, aggregate
和data.table
会处理每个组中的各个列。