entrada de números seqüenciais, sem fim, em um quadro de dados da coluna em r
-
21-12-2019 - |
Pergunta
Eu gostaria de dar uma sequência de números para uma nova coluna para um quadro de dados.Mas esta sequência repete várias vezes, com base em um valor em outra coluna.(eu.e Ele começa a partir de 1 até o valor específico será alterado para outro valor).
O meu problema é como definir o ponto final de cada sequência em r.
Uma parte do meu quadro de dados com a coluna "V2" o que eu pretendo adicionar:
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
Eu tentei usar o código a seguir, que não estava funcionando!
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
}
}
Solução
Parece que você pode estar olhando para rle
uma vez que você está interessado em qualquer época, o "V1" variável alterações.
Tente o seguinte:
> sequence(rle(df$V1)$lengths)
[1] 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4
Outras dicas
rle é uma solução muito boa, mas você também poderia ter usado ave:
tab$V2 <- ave(tab$V1, tab$V1, FUN=seq_along)
hth
Bem Ananda batidas do meu esforço:
vec = numeric(0)
for(i in unique(df$V1)){
n = length(df$V1[df$V1 == i])
vec = c(vec, 1:n)
}