我有一个大约1M行的庞大数据框,并希望根据一列和一列分割数据帧。不同的范围。 示例数据帧:
length<-sample(rep(1:400),100)
var1<-rnorm(1:100)
var2<-sample(rep(letters[1:25],4))
test<-data.frame(length,var1,var2)
我想基于不同范围的长度来分割数据帧(例如:所有行的长度在1到50之间)。
range_length<-list(1:50,51:100,101:150,151:200,201:250,251:300,301:350,351:400)
我可以通过数据框的子集来实现这一点,例如:test1<-test[test$length>1 &test$length<50,]
但我正在寻找更有效的方式使用“分裂”(只是一行)
答案 0 :(得分:2)
range = seq(0,400,50)
split(test, cut(test$length, range))
但请注意Justin的建议,并考虑使用data.table
代替data.frame
,我还要补充一点,实际上需要分割数据的可能性非常小。帧/表。