/ / In R: Come ottengo i nomi delle colonne di un file CSV come elenco e valori come un elenco di elenchi - r, csv

In R: Come ottengo i nomi delle colonne di un file CSV come elenco e valori come un elenco di elenchi - r, csv

Quindi ottengo un dataframe dal mio file CSV in questo modo:

dataFrame = read.csv(fileName, header = TRUE)

e sto cercando di ottenere i nomi delle colonne (prima riga) usando

columnNames = colnames(dataFrame)

Ho bisogno di ottenere i valori nel dataframe in un elenco di liste in cui ogni sottolista è un elenco di valori senza intestazioni.

per esempio.

Values: [
[
"0",
"0",
"value",
"value",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
[
"0",
"0",
"value",
"value",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
]
]

C'è un modo per farlo?

Ho provato a farlo

for(i in 1:nrow(dataFrame)) {
temp = list(dataFrame[i])
values <- c(values, temp)
}

ma continuo a ricevere il nome di ogni colonna insieme a ogni voce.

risposte:

-1 per risposta № 1

Supponendo che il tuo dataframe contenga solocolonne dello stesso tipo, ad es. solo numerico, puoi prima costringere a una matrice e quindi impostare i nomi di colonna (e nomi di riga se ce ne sono) su NULL. Ecco un esempio che utilizza il dataframe di mtcars integrato:

foo <- mtcars
foo <- as.matrix(foo)
rownames(foo) <- NULL
colnames(foo) <- NULL

Puoi quindi convertire in una lista usando un loop simile a quello che hai scritto o, in più "idiomatico" R usando lapply:

foo <- lapply(seq_len(ncol(foo)), function(col) foo[,col])

1 per risposta № 2

io pensare questo è quello che stai cercando di fare, dato il tuo commento sopra riguardo alle volere delle righe:

unname(lapply(split(mtcars,1:nrow(mtcars)),function(x) {unname(as.list(x))}))

Questo utilizza il set di dati integrato mtcars.