按特定行数分配唯一编号 R
Assign unique number by specific number of rows R
我提前道歉 - 我已经尝试找到这个问题的答案,但我很难使用正确的搜索词,所以这可能是重复的。我有一个大型数据集,我正在尝试为组分配一个唯一的数字。但是我需要分配一个数字而不是另一列中的组(因为它们不是唯一的)所以我需要按行号来完成。因此,我希望它每三行分配一个序列号,以便每组 3 现在都具有唯一的标签。
这是我所拥有的非常简化的版本。
data<-data.frame(col1="a",col2=c("species1", "species2","species3","species1", "species2","species3", "species1", "species2","species3"))
如您所见,对于 col1,它都是 a,但 species1 重复了 3 次,所以我无法基于它创建一个独特的组。这就是我想要的:
data2=data.frame(col1="a",col2=c("species1", "species2","species3","species1", "species2","species3", "species1", "species2","species3"), col3=c(1,1,1, 2, 2, 2, 3, 3, 3))
希望我解释得很好?
谢谢
如果示例数据代表您的实际数据集,则以下代码应该有效:
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
我提前道歉 - 我已经尝试找到这个问题的答案,但我很难使用正确的搜索词,所以这可能是重复的。我有一个大型数据集,我正在尝试为组分配一个唯一的数字。但是我需要分配一个数字而不是另一列中的组(因为它们不是唯一的)所以我需要按行号来完成。因此,我希望它每三行分配一个序列号,以便每组 3 现在都具有唯一的标签。
这是我所拥有的非常简化的版本。
data<-data.frame(col1="a",col2=c("species1", "species2","species3","species1", "species2","species3", "species1", "species2","species3"))
如您所见,对于 col1,它都是 a,但 species1 重复了 3 次,所以我无法基于它创建一个独特的组。这就是我想要的:
data2=data.frame(col1="a",col2=c("species1", "species2","species3","species1", "species2","species3", "species1", "species2","species3"), col3=c(1,1,1, 2, 2, 2, 3, 3, 3))
希望我解释得很好?
谢谢
如果示例数据代表您的实际数据集,则以下代码应该有效:
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