IT Share you

목록 목록을 병합하는 방법은 무엇입니까?

shareyou 2020. 12. 1. 20:03
반응형

목록 목록을 병합하는 방법은 무엇입니까?


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

따라서 내 모든 것을으로 가져 오려면 PlainTextDocument다음 Corpus과 같이 작동합니다.

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

누구든지 쉬운 방법을 제안 해 주시겠습니까?

ETA : foo<-unlist(foolist, recursive=FALSE)PlainTextDocuments의 단순 목록을 생성하는데, 여전히 요소별로 목록 요소를 공급하는 문제가 남아 있습니다.c


unlist(foolist)도움 것으로 기대 합니다. 기본적으로 옵션 recursiveTRUE있습니다.

따라서 unlist(foolist, recursive = FALSE)문서 목록을 반환 한 다음 다음과 같이 결합 할 수 있습니다.

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

do.callc얻은 목록의 요소 에만 함수 적용 합니다.


다음은 목록이 여러 번 중첩되고 중첩 양이 목록 요소간에 다른 경우에 대한보다 일반적인 솔루션입니다.

 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)
  }
}

참고 URL : https://stackoverflow.com/questions/16300344/how-to-flatten-a-list-of-lists

반응형