Eu tenho uma lista que eu criei de um loop for e se parece com isso:
Eu tentei convertê-lo em um dataframe usando o código:
dflist<- as.data.frame(mylist)
Mas meu dataframe se parece com isso agora:
Eu sei que provavelmente criei minha lista errada, mas acho que isso ainda pode ser aproveitado se eu precisar converter os números em um dataframe corretamente.
Meu objetivo final é plotar os números em relação ao seu índice (1-30) e pensei em criar um dataframe primeiro para limpá-lo e, em seguida, o gráfico seria útil. Qualquer ajuda seria muito apreciada. Obrigado.
Respostas:
5 para resposta № 1Os dados mostrados são list
. Podemos usar unlist
e criar um data.frame
. Baseado na imagem mostrada no post do OP, cada list
elemento tem um length
de 1. Ao fazer unlist
nós convertemos o list
para vector
e depois embrulhe com data.frame
.
data.frame(ind= seq_along(lst), Col1= as.numeric(unlist(lst)))
Ou outra opção seria stack
depois de nomear o list
elementos
df1 <- transform(stack(setNames(lst, seq_along(lst))),
values = as.numeric(values))
Dá um conjunto de dados de duas colunas. A partir disso podemos fazer o plot
tingindo
Quanto à abordagem do OP sobre a chamada as.data.frame
diretamente no list
, funciona de uma maneira diferente, como exige as.data.frame.list
. Por exemplo, se fizermos as.data.frame
com um vector
, usa as.data.frame.vector
as.data.frame(1:5)
# 1:5
#1 1
#2 2
#3 3
#4 4
#5 5
Mas se chamarmos as.data.frame.list
as.data.frame.list(1:5)
# X1L X2L X3L X4L X5L
#1 1 2 3 4 5
obtemos um data.frame com colunas "n" (com base no comprimento do vetor).
Suponha que façamos o mesmo em um list
as.data.frame(as.list(1:5))
# X1L X2L X3L X4L X5L
#1 1 2 3 4 5
Ele usa o as.data.frame.list
. Para obter a lista completa de methods
do as.data.frame
,
methods("as.data.frame")
#[1] as.data.frame.aovproj* as.data.frame.array
# [3] as.data.frame.AsIs as.data.frame.character
# [5] as.data.frame.chron* as.data.frame.complex
# [7] as.data.frame.data.frame as.data.frame.data.table*
# [9] as.data.frame.Date as.data.frame.dates*
#[11] as.data.frame.default as.data.frame.difftime
#[13] as.data.frame.factor as.data.frame.ftable*
#[15] as.data.frame.function* as.data.frame.grouped_df*
#[17] as.data.frame.idf* as.data.frame.integer
#[19] as.data.frame.ITime* as.data.frame.list <-------
#[21] as.data.frame.logical as.data.frame.logLik*
#[23] as.data.frame.matrix as.data.frame.model.matrix
#[25] as.data.frame.noquote as.data.frame.numeric
#[27] as.data.frame.numeric_version as.data.frame.ordered
#[29] as.data.frame.POSIXct as.data.frame.POSIXlt
#[31] as.data.frame.raw as.data.frame.rowwise_df*
#[33] as.data.frame.table as.data.frame.tbl_cube*
#[35] as.data.frame.tbl_df* as.data.frame.tbl_dt*
#[37] as.data.frame.tbl_sql* as.data.frame.times*
#[39] as.data.frame.ts as.data.frame.vector