【发布时间】:2018-10-22 14:11:57
【问题描述】:
我想根据序列列切入以下多个数据框
sequence Var1 Var2 Var3 Var4
5 0.003838776 0.003687773 0.003838776 0.003838776
4 0.002551022 0.001226242 0.002551022 0.002551022
3 -0.011531198 -0.011090687 -0.011497312 -0.011518828
2 0.012804272 0.011090687 0.012540644 0.012704180
1 0.010126669 0.009756175 0.010041170 0.010092812
0 0.010025147 0.009661911 0.009913382 0.009978835
5 z z z z
4 0.002551022 0.001226242 0.002551022 0.002551022
3 -0.011531198 -0.011090687 -0.011497312 -0.011518828
2 0.012804272 0.011090687 0.012540644 0.012704180
1 0.010126669 0.009756175 0.010041170 0.010092812
0 0.010025147 0.009661911 0.009913382 0.009978835
5 a b c 0.003838776
3 a 0.011090687 -0.011497312 -0.011518828
2 0.012804272 0.011090687 0.012540644 0.012704180
1 0.010126669 0.009756175 0.010041170 0.010092812
0 0.010025147 0.009661911 0.009913382 0.009978835
我想从 5 到 0 的列序列中获得多个数据框:
例如:
sequence Var1 Var2 Var3 Var4
5 0.003838776 0.003687773 0.003838776 0.003838776
4 0.002551022 0.001226242 0.002551022 0.002551022
3 -0.011531198 -0.011090687 -0.011497312 -0.011518828
2 0.012804272 0.011090687 0.012540644 0.012704180
1 0.010126669 0.009756175 0.010041170 0.010092812
0 0.010025147 0.009661911 0.009913382 0.009978835
将是第一个,
5 z z z z
4 0.002551022 0.001226242 0.002551022 0.002551022
3 -0.011531198 -0.011090687 -0.011497312 -0.011518828
2 0.012804272 0.011090687 0.012540644 0.012704180
1 0.010126669 0.009756175 0.010041170 0.010092812
0 0.010025147 0.009661911 0.009913382 0.009978835
将是第二个并且
5 a b c 0.003838776
3 a 0.011090687 -0.011497312 -0.011518828
2 0.012804272 0.011090687 0.012540644 0.012704180
1 0.010126669 0.009756175 0.010041170 0.010092812
0 0.010025147 0.009661911 0.009913382 0.009978835
将是第三个:
有时在 0 和 5 之间缺少一行,例如在最后一次拆分中缺少第 4 行。
【问题讨论】:
-
split(df, cumsum(df$sequence == 5))或split(df, cumsum(c(1, diff(df$sequence) > 0))) -
感谢它的工作
标签: r