我有一个包含500个复制的模拟数据集,每个复制包含300个id。当rep=1时,id的范围为1-300;当rep=2时,id的范围再次为1-300,依此类推。
我想得到以下内容:当rep=1时:id1-300;当rep=2:id 301-600,依此类推。如果复制数量相对较少,则可以使用if-else语句轻松完成这一操作,就像下面的代码为四个复制执行任务一样:
d1 <- mutate(d1, ID = ifelse(rep==1, id,
ifelse(rep==2, id+300,
ifelse(rep==3, id+600, id+900))))
但是,当我有500个复制时,我应该如何解决这个问题?所以本质上我的问题是:我应该如何编码——复制列的每增加一个单位,id列就会增加300?我附上了4次复制的结果(上面代码的结果(。
以下是数据快照:复制1复制4
我会使用rep
来识别id
,比如:
d1 <- mutate(d1, ID = id + 300*(rep-1))