[R-br] Converter list em data.frame
Diego Bilski
diegobilski em gmail.com
Segunda Agosto 27 15:21:21 BRT 2012
se você renomear os índices da sua lista antes, e.g.
> names(resd)<-c("tempo1", "tempo2", ..., "tempoN")
e depois aplicar a função ldply (não a laply), será criada uma coluna
.id com os nomes dos índices.
laply retorna um array
ldply retorna um data frame
Diego
2012/8/27 Thiago Veloso <thi_veloso em yahoo.com.br>:
> Caros Fernando e Diego,
>
> Obrigado pelas sugestões. Ambas funcionaram, mas nenhuma delas guardou o índice da lista.
>
> Vejam abaixo as saídas dos comandos:
>
>> df1 <- cbind(rep(1:length(resd), each = 15), do.call(rbind, resd)) Warning message: In cbind(rep(1:length(resd), each = 15), do.call(rbind, resd)) : number of rows of result is not a multiple of vector length (arg 1) > head(df1) value count
> [1,] 1 1 267
> [2,] 1 6 86
> [3,] 1 7 21
> [4,] 1 8 7
> [5,] 1 9 3683
> [6,] 1 10 537
>
> -------------------------------------------------------------------------
>
>> df2 <- laply(resd, data.frame) > head(df2) [[1]] value count
> 1 1 267
> 2 6 86
> 3 7 21
> 4 8 7
> 5 9 3683
> 6 10 537
> 7 11 135
> 8 12 17
> 9 13 74
> 10 NA 2228 [[2]] value count
> 1 1 2257
> 2 2 57
> 3 3 289
> 4 4 2
> 5 6 88
> 6 7 13
> 7 8 32
> 8 9 1137
> 9 10 756
> 10 11 99
> 11 12 22
> 12 13 67
> 13 14 1
> 14 15 7
> 15 NA 2228 [[3]] value count
> 1 1 2170
> 2 2 61
> 3 3 316
> 4 4 3
> 5 6 74
> 6 7 1
> 7 8 12
> 8 9 781
> 9 10 1100
> 10 11 66
> 11 12 160
> 12 13 46
> 13 14 9
> 14 15 28
> 15 NA 2228 [[4]] value count
> 1 1 2174
> 2 2 56
> 3 3 300
> 4 4 3
> 5 6 62
> 6 8 4
> 7 9 564
> 8 10 1317
> 9 11 75
> 10 12 113
> 11 13 42
> 12 14 85
> 13 15 32
> 14 NA 2228 [[5]] value count
> 1 1 2174
> 2 2 58
> 3 3 301
> 4 4 5
> 5 6 54
> 6 8 4
> 7 9 469
> 8 10 1393
> 9 11 83
> 10 12 76
> 11 13 41
> 12 14 136
> 13 15 33
> 14 NA 2228 [[6]] value count
> 1 1 2185
> 2 2 52
> 3 3 300
> 4 4 4
> 5 6 52
> 6 8 3
> 7 9 397
> 8 10 1457
> 9 11 83
> 10 12 74
> 11 13 38
> 12 14 146
> 13 15 36
> 14 NA 2228
>
>
> Um abraço,
> Thiago.
>
>
> ----- Original Message -----
> From: Thiago Veloso <thi_veloso em yahoo.com.br>
> To: Lista R <r-br em listas.c3sl.ufpr.br>
> Cc:
> Sent: Monday, August 27, 2012 9:37 AM
> Subject: [R-br] Converter list em data.frame
>
> Olá pessoal,
>
> Uma dúvida básica: possuo uma lista de objetos que contam a frequência de valores (count) em classes (value). Nessa lista, cada índice ([[1]], [[2]] etc) corresponde a um passo de tempo. Vejam abaixo uma amostra:
>
>> head(resd)
> [[1]] ! essa é a primeira unidade de tempo.
> value count
> [1,] 1 267 ! na classe '1' foram encontradas 267 ocorrências, e assim por diante
> [2,] 6 86
> [3,] 7 21
> [4,] 8 7
> [5,] 9 3683
> [6,] 10 537
> [7,] 11 135
> [8,] 12 17
> [9,] 13 74
> [10,] NA 2228
>
> [[2]] ! essa é a segunda unidade de tempo.
> value count
> [1,] 1 2257 ! na classe '1' foram encontradas 2257 ocorrências, e assim por diante
> [2,] 2 57
> [3,] 3 289
> [4,] 4 2
> [5,] 6 88
> [6,] 7 13
> [7,] 8 32
> [8,] 9 1137
> [9,] 10 756
> [10,] 11 99
> [11,] 12 22
> [12,] 13 67
> [13,] 14 1
> [14,] 15 7
> [15,] NA 2228
>
> [[3]]
> value count
> [1,] 1 2170
> [2,] 2 61
> [3,] 3 316
> [4,] 4 3
> [5,] 6 74
> [6,] 7 1
> [7,] 8 12
> [8,] 9 781
> [9,] 10 1100
> [10,] 11 66
> [11,] 12 160
> [12,] 13 46
> [13,] 14 9
> [14,] 15 28
> [15,] NA 2228
>
> [[4]]
> value count
> [1,] 1 2174
> [2,] 2 56
> [3,] 3 300
> [4,] 4 3
> [5,] 6 62
> [6,] 8 4
> [7,] 9 564
> [8,] 10 1317
> [9,] 11 75
> [10,] 12 113
> [11,] 13 42
> [12,] 14 85
> [13,] 15 32
> [14,] NA 2228
>
> [[5]]
> value count
> [1,] 1 2174
> [2,] 2 58
> [3,] 3 301
> [4,] 4 5
> [5,] 6 54
> [6,] 8 4
> [7,] 9 469
> [8,] 10 1393
> [9,] 11 83
> [10,] 12 76
> [11,] 13 41
> [12,] 14 136
> [13,] 15 33
> [14,] NA 2228
>
> [[6]]
> value count
> [1,] 1 2185
> [2,] 2 52
> [3,] 3 300
> [4,] 4 4
> [5,] 6 52
> [6,] 8 3
> [7,] 9 397
> [8,] 10 1457
> [9,] 11 83
> [10,] 12 74
> [11,] 13 38
> [12,] 14 146
> [13,] 15 36
> [14,] NA 2228
>
> Como converter essa lista em um data.frame, mantendo o índice, e salvar em um arquivo ascii?
>
> Agradece pelas dicas,
> Thiago.
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
>
Mais detalhes sobre a lista de discussão R-br