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 № 1Supponendo 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
.