ver tablas que nombres listas leer filas eliminar data creacion contar columnas r list tm

que - tablas en r



cómo aplanar una lista de listas en R (2)

Aquí hay una solución más general para cuando las listas se anidan varias veces y la cantidad de anidación difiere entre los elementos de las listas:

flattenlist <- function(x){ morelists <- sapply(x, function(xprime) class(xprime)[1]=="list") out <- c(x[!morelists], unlist(x[morelists], recursive=FALSE)) if(sum(morelists)){ Recall(out) }else{ return(out) } }

El paquete tm extiende c modo que, si se le da un conjunto de PlainTextDocument s, crea automáticamente un Corpus . Desafortunadamente, parece que cada PlainTextDocument debe especificar por separado.

por ejemplo, si tuviera:

foolist <- list(a, b, c); # where a,b,c are PlainTextDocument objects

Haría esto para obtener un Corpus :

foocorpus <- c(foolist[[1]], foolist[[2]], foolist[[3]]);

Tengo una lista de listas de ''PlainTextDocument s que se ve así:

> str(sectioned) List of 154 $ :List of 6 ..$ :Classes ''PlainTextDocument'', ''TextDocument'', ''character'' atomic [1:1] Developing assessment models Developing models .. .. ..- attr(*, "Author")= chr "John Smith" .. .. ..- attr(*, "DateTimeStamp")= POSIXlt[1:1], format: "2013-04-30 12:03:49" .. .. ..- attr(*, "Description")= chr(0) .. .. ..- attr(*, "Heading")= chr "Research Focus" .. .. ..- attr(*, "ID")= chr(0) .. .. ..- attr(*, "Language")= chr(0) .. .. ..- attr(*, "LocalMetaData")=List of 4 .. .. .. ..$ foo : chr "bar" .. .. .. ..$ classification: chr "Technician" .. .. .. ..$ team : chr "" .. .. .. ..$ supervisor : chr "Bill Jones" .. .. ..- attr(*, "Origin")= chr "Smith-John_e.txt" #etc., all sublists have 6 elements

Entonces, para obtener todos mis documentos PlainTextDocument en un Corpus , esto funcionaría:

sectioned.Corpus <- c(sectioned[[1]][[1]], sectioned[[1]][[2]], ..., sectioned[[154]][[6]])

¿Alguien puede sugerir una manera más fácil, por favor?

ETA: foo<-unlist(foolist, recursive=FALSE) produce una lista plana de PlainTextDocuments, que todavía me deja con el problema de alimentar un elemento de lista por elemento a c


Espero que unlist(foolist) te ayude. Tiene una opción recursive que es TRUE por defecto. Así que unlist (tonto, recursivo = FALSO) devolverá la lista de los documentos, y luego puede combinarlos por

do.call(c, unlist(foolist, recursive=FALSE))

do.call solo aplica la función c a los elementos de la lista obtenida