假设我有一个这样的数据框
a b c
1 2 3
1 3 4
1 4 5
2 5 6
2 6 7
3 7 8
4 8 9
我想要的是以下内容:
a b c d
1 2 3 a
1 3 4 b
1 4 5 c
2 5 6 a
2 6 7 b
3 7 8 a
4 8 9 a
本质上,我想做一个循环,对于 a 列的每个组,我想创建一个新列,按顺序将字母从 a 循环到 z。第 1 组有三个元素,所以字母从“a”到“c”。第 3 组和第 4 组只有 1 个元素,因此该字母仅分配为“a”。
最佳答案
data.table 选项是
library(data.table)
setDT(dd)[, d:= letters[seq_len(.N)], by = a]
关于r - 如何对组中的每个元素做某事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33862223/