1. ホーム
  2. r

[解決済み] リストのリストを平坦化するには?

2023-07-02 01:23:28

質問

質問 tm パッケージは c を拡張しているので、もし PlainTextDocument のセットが与えられると、自動的に Corpus . 残念なことに、それぞれの PlainTextDocument は別々に指定しなければならないようです。

例:あったら

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

こうすることで Corpus :

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

のリストのリストを持っています。 'PlainTextDocument のようなものがあります。

> 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

というわけで、私のすべての PlainTextDocumentCorpus に変換すれば、うまくいくでしょう。

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

どなたか、もっと簡単な方法を教えてください。

ETAです。 foo<-unlist(foolist, recursive=FALSE) は PlainTextDocuments のフラットなリストを生成しますが、リストを一要素ずつ c

どのように解決するのでしょうか?

私は、次のことを期待しています。 unlist(foolist) はあなたを助けるでしょう。これにはオプション recursive であり、これは TRUE である。

そのため unlist(foolist, recursive = FALSE) を実行すると、ドキュメントのリストが返されるので、それで結合することができます。

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

do.call は、単に関数 c を適用しています。