Atribuir índices em nível de grupo durante ou após derreter [duplicado
Pergunta
Esta pergunta já tem uma resposta aqui:
- Como uso o PLYR para numerar linhas? 3 respostas
Eu tenho um quadro de dados com lacunas como esta:
Var1 Var2 Var3
1 NA NA NA
2 NA NA NA
3 NA NA NA
4 NA 0.06703 NA
5 NA 0.08639 NA
6 NA 0.19023 0.02322
7 NA 0.31764 0.08058
8 NA 0.44426 0.15081
9 NA 0.37529 0.29595
10 NA 0.40029 0.29274
11 NA 0.33828 0.39168
12 0.01595 0.31432 0.43192
13 0.05217 0.28560 0.48150
14 0.07196 0.32588 0.56065
15 0.08771 0.26301 0.68131
Quando eu corro melt(),
Eu removo as células NA:melt(df, na.rm = TRUE)
, mas eu gostaria de adicionar uma nova coluna que contém um número de linha para a posição de cada valor em seu variable
grupo.
Então, meus resultados são assim:
variable value
Var1 0.01595
Var1 0.05217
Var1 0.07196
Var1 0.08771
Var2 0.06703
Var2 0.08639
...etc
E eu quero que eles fiquem assim:
variable value index
Var1 0.01595 1
Var1 0.05217 2
Var1 0.07196 3
Var1 0.08771 4
Var2 0.06703 1
Var2 0.08639 2
...etc
Qual é a melhor maneira de gerar esses números internos de linha, seja antes, durante ou após o processo de fusão?
Solução
Dê uma olhada Nesta pergunta anterior sobre contagens de coorte incrementadas automáticas. EU acho É isso que você quer fazer. Nesse caso, provavelmente mais fácil (pelo menos para mim) para fazer isso como uma operação separada com Plyr.
Aqui está a essência:
ddply(df, .(variable), function(x) data.frame(x, NewID=1:nrow(x)))