-1

我有一个包含 500 个副本的模拟数据集 - 每个副本包含 300 个 ID。当 rep = 1 时,id 范围为 1-300;当 rep = 2 时,id 再次在 1-300 之间,依此类推。

我想得到以下信息:当 rep = 1: id 1-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

4

1 回答 1

1

我会rep用来识别id,例如:

d1 <- mutate(d1, ID = id + 300*(rep-1))
于 2021-12-17T15:32:27.320 回答