1

我有一个大约 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,] 但我正在寻找更有效的方式使用“拆分”(只是一条线)

4

1 回答 1

2
range = seq(0,400,50)
split(test, cut(test$length, range))

但是请注意贾斯汀的建议并考虑使用data.table而不是,data.frame我还要补充一点,您实际上不太可能需要拆分 data.frame/table。

于 2013-09-10T20:13:47.017 回答