/ / Como manter os nomes das colunas ao usar as.data.frame - r

Como manter os nomes das colunas ao usar as.data.frame - r

Eu estou tentando converter lista para quadro de dados e altera os nomes de colunas. Lista parece

ids

Name1      Name2
"CatValue" 6

quando eu corro as.data.frame(ids, optional = FALSE) muda para:

ids.Name1      ids.Name2
"CatValue"     6

Mas deve permanecer o mesmo.

Como evitar isso? Eu pensei que o argumento opcional iria ajudar, mas como você pode ver, isso não aconteceu.

EDITAR: Eu vejo que não estava claro o suficiente, então vou tentar mostrar a você uma grande imagem.

Eu escrevi scrapper que atribui frame de dados para valor como id0001, id0002 etc. Eu quero usar esses quadros de dados em for-loop, então eu uso o código como este para chegar a eles table<-mget(ids0001) e typeof(table) é lista (não faço ideia do porquê). Eu preciso transformar isso em data.frame (para fazer meu loop funcionar).

O problema é, o que é atribuído a table deve ser tabela não listar (e foi antes de eu usar mget().

ambos, meu primeiro data.frame, list e data.frame depois de usar o mget () assim, o problema é que o data.frame adiciona ids0001. para o nome da coluna.

 GAME_ID E VENTNUM EVENTMSGTYP EVENTMSGACTIONTYPE   PERIOD   WCTIMESTRING
1 0021500001 0       12            0                    1       8:12 PM
2 0021500001 1       10            0                    1       8:12 PM
3 0021500001 2        2           42                    1       8:13 PM
4 0021500001 3        4            0                    1       8:13 PM
5 0021500001 4        5           45                    1       8:13 PM
6 0021500001 5        1           80                    1       8:13 PM

EDIT 2: Agora eu posso ver mget () cria uma lista como abaixo. foi muito longo e senti falta disso

 id0001$
GAME_ID E VENTNUM EVENTMSGTYP EVENTMSGACTIONTYPE   PERIOD   WCTIMESTRING
1 0021500001 0       12            0                    1       8:12 PM
2 0021500001 1       10            0                    1       8:12 PM
3 0021500001 2        2           42                    1       8:13 PM
4 0021500001 3        4            0                    1       8:13 PM
5 0021500001 4        5           45                    1       8:13 PM
6 0021500001 5        1           80                    1       8:13 PM

Respostas:

2 para resposta № 1

Se você puder compartilhar como você gerou a lista, será útil. Tentei replicar sua lista (ou melhor, quase). Para evitar a nomenclatura padrão do argumento deparsed, você pode especificar um nome value = ids$ids.

ids = list(ids = c(Name1 = "CatValue", Name2 = 6))
b <- data.frame(value = ids$ids)
t(b)

Saída

      Name1      Name2
value "CatValue" "6"

1 para resposta № 2

akrun e rawr estão certos. eu usei ids[[1]] e resolveu o problema. Obrigado pessoal.


0 para resposta № 3

Eu tentei o seguinte:

> listSample <- list(Name1 = "catValue", Name2 = 6)
> listSample
$Name1
[1] "catValue"

$Name2
[1] 6

> listAsDF <- as.data.frame(listSample)
> listAsDF
Name1 Name2
1 catValue     6

Sem ver como você construiu sua lista, eu souNão tenho certeza porque você tem algo diferente. Se eu não tivesse criado a lista da maneira que eu fiz e apenas mudei para um DF, R teria adicionado um prefixo (ou seja, "X") para "catValue" e 6 assim meus nomes de coluna seriam X.catValue e X6.