이 질문에 대한 만족스러운 답을 찾지 못했습니다. 내가 함수가 있다고 가정 :은 llply에 목록 인수를 전달합니다.
foo <- function(a,b,c) {
...
}
a
많은 data.frame
객체
b
을 포함하는 목록 (즉 어떤 도움이되는지 라이브러리 spatstat
에서 클래스 ppp
) 데이터의 특별한 클래스를 포함하는 목록입니다.
c
은 정수입니다.
와 나는 그 함수를 통해 목록을 밀어 원하는 : b
에서 목록 항목의
result <- llply(a, foo, b,c)
이름은 목록 a
에 data.frames의 열 "유형"에 해당합니다. 그래서 기능 foo
내부에서 나는 빨리 수행 할 수 있습니다
id <- which(names(b) == unique(a$type))
baseline_pattern <- b[[id]]
는의 오른쪽 data.frame와 B의 각 기본 공간 패턴과 일치 할 수 있습니다. a에는 약 10 개의 항목과 1000 개의 항목이 있습니다. 불행하게도 llply
(또는 일반적으로 lapply
)은 하나의 목록 항목을 시간에 푸시하려고하기 때문에 작동하지 않습니다. 이는 인수 목록 b
에 대해서도 올바른 코드가있는 b
의 올바른 목록 항목과 일치하는 두 줄의 코드가 실패합니다. 함수는 더 이상 전체 목록을 가지고 있지 않습니다 b
. 이 주위에 어떤 방법이 있습니까? 핀치
data.frame
과 대응점 패턴 객체를 포함와리스트 자체이다 (효과적으로
a
및
b
조합) 다른 목록을 만들 수있다. 그러나 이로 인해 1000s의 중복 사본이 생성됩니다 (클러스터에서이 작업을 훨씬 효율적으로 수행하지 못하게합니다).
업데이트 : 이것을 클러스터에서 실행하려면 mclapply
으로 바꾸십시오. 나는 mapply
으로 할 수 없다 (mcmapply
이없는 한).
R 2.15.0에는'mcmapply'가 있습니다. 업그레이드 시간 ...? –