使用循环创建许多数据帧

时间:2016-08-08 12:38:08

标签: r loops dataframe

我有数据框" df"以下内容:

df=data.frame(time=as.factor(rep(c(0.01*(1:100)),each=49)),
          roi=rep(1:49,100),
          area=runif(4900, 5.0, 7.5),hours=(rep(1:10,each=490)))

根据列"小时"

将df拆分为10个较小的数据帧
x=split(df,df$hours)

在每个子数据帧中,产生一个新的数据帧" br [i]:

br1=data.frame(x$`1`[c(1,round(nrow(x$`1`)*(1:4)/4)),])
br1$Min=c(0,15,30,45,60)
br2=data.frame(x$`2`[c(1,round(nrow(x$`2`)*(1:4)/4)),])
br2$Min=c(0,15,30,45,60)
...
br10=data.frame(x$`10`[c(1,round(nrow(x$`10`)*(1:4)/4)),])
br10$Min=c(0,15,30,45,60)

问题是如何制作10个数据框" br"多次自动不重复上述命令?

非常感谢您的回复!

1 个答案:

答案 0 :(得分:4)

尝试:

lapply(split(df,df$hours), function(x) {
    br=data.frame(x[c(1,round(nrow(x)*(1:4)/4)),])
    br$Min=c(0,15,30,45,60)
    return(br)
})