Назначить уникальное число по определенному количеству строк R - PullRequest
0 голосов
/ 25 октября 2018

Я заранее извиняюсь - я уже пытался найти ответ на этот вопрос, но мне было трудно использовать правильные условия поиска, так что это может быть повторением.У меня большой набор данных, который я пытаюсь назначить уникальному номеру для групп.Но мне нужно назначить номер не по группе в другом столбце (потому что они не уникальны), поэтому мне нужно сделать это по номеру строки.Таким образом, каждые три строки я хочу, чтобы он присваивал порядковый номер, чтобы каждая группа из 3 теперь имела уникальную метку.

Это ОЧЕНЬ упрощенная версия того, что у меня есть.

 data<-data.frame(col1="a",col2=c("species1",       "species2","species3","species1", "species2","species3", "species1", "species2","species3")) 

Как вы можете видеть для col1, это все a, но kind1 повторяется 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)) 

Надеюсь, я хорошо это объяснил?

Спасибо

1 Ответ

0 голосов
/ 25 октября 2018

Если данные примера представляют ваш фактический набор данных, следующий код должен работать:

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
...