R按每列值拆分矩阵

R按每列值拆分矩阵,r,matrix,split,dataframe,R,Matrix,Split,Dataframe,我在R中有这样一个数据帧(比这个长得多,但我想它概括了): 并希望从id列中的每1个值中拆分它们。所以在结果中,我应该有3个子矩阵,如: p01 1 0 0 p02 2 1 3 p03 1 0 5 p04 2 2 4 p05 3 6 7 p06 1 0 8 我怎么能这么做?我试过: result=sp

我在R中有这样一个数据帧(比这个长得多,但我想它概括了):

并希望从id列中的每1个值中拆分它们。所以在结果中,我应该有3个子矩阵,如:

p01     1      0        0
p02     2      1        3

p03     1      0        5
p04     2      2        4
p05     3      6        7

p06     1      0        8
我怎么能这么做?我试过:

result=split(xx,xx$id==1)

但是它将1和其他变量分开。

我们可以通过获取逻辑向量的累积和来创建分组变量(
df1$id==1

result=split(xx,xx$id==1)
split(df1,cumsum(df1$id==1))
#$`1`
#  label id value1 value2
#1   p01  1      0      0
#2   p02  2      1      3

#$`2`
#  label id value1 value2
#3   p03  1      0      5
#4   p04  2      2      4
#5   p05  3      6      7

#$`3`
#  label id value1 value2
#6   p06  1      0      8