我有数据框" 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"多次自动不重复上述命令?
非常感谢您的回复!
答案 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)
})