通过特定的行数R分配唯一编号

时间:2018-10-25 01:31:39

标签: r grouping sequence repeat

我事先表示歉意-我已经尝试过找到答案,但是我在使用正确的搜索字词方面遇到了困难,因此这可能是重复的。我有一个大型数据集,试图为组分配一个唯一的数字。但是我需要不在另一列中按组分配数字(因为它们不是唯一的),所以我需要按行号进行分配。因此,我希望每三行分配一个顺序号,以便每3个组现在唯一地进行标记。

这是我所拥有的非常简化的版本。

const

如您对col1所看到的,它都是a,但是物种1重复3次,因此我无法基于此创建唯一的组。这就是我想要的:

const arr = [{id: 1}, {id: 2}, {id: 3}]; 

if (item = arr.find(v => v.id === 2)) {
   console.log(item);
}

希望我解释得很好吗?

谢谢

1 个答案:

答案 0 :(得分:2)

如果示例数据代表您的实际数据集,则以下代码应该有效:

data$col3 <- rep(seq_len(nrow(data)/3), each = 3)

data
#   col1     col2 col3
# 1    a species1    1
# 2    a species2    1
# 3    a species3    1
# 4    a species1    2
# 5    a species2    2
# 6    a species3    2
# 7    a species1    3
# 8    a species2    3
# 9    a species3    3