R 如何合并长度不等但块长度已知的数据帧?

R 如何合并长度不等但块长度已知的数据帧?,r,dataframe,R,Dataframe,我有一个模型,其中个体可以死亡和繁殖。我以设定的间隔记录模型中的信息。我知道个体的身份和我从中取样的迭代次数: df1<-data.frame( who= c(1,2,3,4,1,2,3,3,5), iteration = c(1,1,1,1,2,2,2,3,3) ) df1 这里,我们将基于%%创建的分组索引的“值”列拆分为向量的列表,然后通过指定长度cbind(df1,split),在列表元素末尾添加NA(如果元素数量较少)(df2$值,(沿(df2$值)-1的顺序)%%2+1)谢谢

我有一个模型,其中个体可以死亡和繁殖。我以设定的间隔记录模型中的信息。我知道个体的身份和我从中取样的迭代次数:

df1<-data.frame(
who= c(1,2,3,4,1,2,3,3,5),
iteration = c(1,1,1,1,2,2,2,3,3)
)
df1

这里,我们
将基于
%%
创建的分组索引的“值”列
拆分为
向量
列表
,然后通过指定
长度
cbind(df1,split),在
列表
元素末尾添加
NA
(如果元素数量较少)(df2$值,(沿(df2$值)-1的顺序)%%2+1)
谢谢。你能解释一下代码在做什么吗?如果个人有>2个与他们相关的值,我该如何扩展此功能?
lst有效,我只需将“2”改为感兴趣的数字,并在末尾删除一个额外的括号。将其作为完整答案放下来,我可以将其标记为解决方案。再次感谢。
df2 <- data.frame(values=c(1,1, # id = 1
                           1,2, # id = 2
                           2,1, # id = 3
                           0,0, # id = 4
                           1,1, # id = 1
                           1,2, # id = 2
                           2,1, # id = 3
                           2,1, # id = 3
                           0,0)) # id = 5
df2
df3 <- split(df2$values, ceiling(seq_along(df2$values)/2))
who iteration value1 value2
1      1      1       1
2      1      1       2
3      1      2       1
4      1      0       0
1      2      1       1
2      2      1       2
3      2      2       1
3      3      2       1  
5      3      0       0
lst <- split(df2$values, (seq_along(df2$values)-1) %% 2 +1)
m1 <- do.call(cbind, lapply(lst, "length<-", max(lengths(lst))))
cbind(df1, m1)