Das tm
Paket wird c
so erweitert , dass bei Angabe eines Satzes von PlainTextDocument
s automatisch ein erstellt wird Corpus
. Leider scheint es, dass jeder PlainTextDocument
separat angegeben werden muss.
zB wenn ich hätte:
foolist <- list(a, b, c); # where a,b,c are PlainTextDocument objects
Ich würde das tun, um ein Corpus
:
foocorpus <- c(foolist[[1]], foolist[[2]], foolist[[3]]);
Ich habe eine Liste von Listen von 'PlainTextDocument
s, die so aussieht:
> 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
Also, um alle meine PlainTextDocument
s in ein zu bekommen Corpus
, würde dies funktionieren:
sectioned.Corpus <- c(sectioned[[1]][[1]], sectioned[[1]][[2]], ..., sectioned[[154]][[6]])
Kann jemand bitte einen einfacheren Weg vorschlagen?
ETA: foo<-unlist(foolist, recursive=FALSE)
Erstellt eine flache Liste von PlainTextDocuments, wodurch ich immer noch das Problem habe, eine Liste Element für Element zuzuführenc
NCmisc::Unlist()
Erwägen Sie auch die Verwendung für die Auflistung über die erste Ebene hinaus.Hier ist eine allgemeinere Lösung für den Fall, dass Listen mehrmals verschachtelt sind und das Ausmaß der Verschachtelung zwischen den Elementen der Listen unterschiedlich ist:
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) } }
quelle
Hier ist eine andere Methode, die für meine Liste von Listen funktioniert hat.
df <- as.data.frame(do.call(rbind, lapply(foolist, as.data.frame)))
quelle