Входные последовательные числа без определенного конца в столбце данных в R
-
21-12-2019 - |
Вопрос
Я хотел бы дать последовательность номеров для нового столбца в кадр данных.Но эта последовательность повторяется несколько раз на основе значения в другом столбце.(I.e он начинается с 1 до тех пор, пока что конкретное значение не будет изменено на другое значение).
Моя проблема заключается в том, как определить точку окончания для каждой последовательности в r.
Часть моей рамки данных с столбцом "v2", которую я собираюсь добавить:
V1 V2(new added column with sequential numbers)
12 1
12 2
12 3
12 4
12 5
13 1
13 2
13 3
13 4
13 5
13 6
14 1
14 2
14 3
14 4
.
Я пытался использовать следующий код, который не работал!
count <- table(df$V1)
c <- as.integer(names(count)[df$V1==12])
repeat{
df$V2<- seq(1,c, by=1)
if(df$V1!=12){
break
}
}
. Решение
Звучит так, как вы можете искать rle
, поскольку вы заинтересованы в любое время «V1» переменные изменения .
Попробуйте следующее:
> sequence(rle(df$V1)$lengths)
[1] 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4
. Другие советы
RLE - это очень хорошее решение, но вы также можете использовать Ave:
tab$V2 <- ave(tab$V1, tab$V1, FUN=seq_along)
.
HTH
Ну Ананда бьет мои усилия:
vec = numeric(0)
for(i in unique(df$V1)){
n = length(df$V1[df$V1 == i])
vec = c(vec, 1:n)
}
.