중첩 된 lapply에 대한 효율적인 대안을 찾고 있는데 중첩 된 구조를 사용하는 것이 R 커뮤니티에서 인정받지 못한다고 생각합니다. 누구든지 가능한 아이디어를 제안하거나 사용자 정의 함수에서 둥지 lapply 사용을 피하기 위해 접근 할 수 있습니까? R에서 중첩 된 lapply 사용을 피하는 방법은 무엇입니까?
a.big <- a[a$score >10,]
a.sml <- a[(a$score > 6 & a$score <= 10),]
a.non <- a[a$score < 6,]
a_new <- list('big'=a.big, 'sml'=a.sml)
tar.list <- list(b,c)
test <- lapply(a_new, function(ele_) {
re <- lapply(tar.list, function(li) {
out <- base::setdiff(ele_, li)
return(out)
})
})
목적 :
피할 데이터 내가 lapply 중첩 있지만이를 방지하려면 사용
a <- data.frame(
start=seq(1, by=9, len=18), stop=seq(6, by=9, len=18),
ID=letters[seq(1:18)], score=sample(1:25, 18, replace = FALSE))
b <- data.frame(
start=seq(2, by=11, len=20), stop=seq(8, by=11, len=20),
ID=letters[seq(1:20)], score=sample(1:25, 20, replace = FALSE))
c <- data.frame(
start=seq(4, by=11, len=25), stop=seq(9, by=11, len=25),
ID=letters[seq(1:25)], score=sample(1:25, 25, replace = FALSE))
기능 시뮬레이션
: 여기
빠른 재현 예입니다 중첩 된 lapply를 사용하여 효율적인 대안을 찾는다. 나는 재현하기 쉽고 빠르며, 빠르고 쉬운 하류 계산을 가능하게해야만하는 출력에 대한 더 나은 표현을 찾는 것을 의미한다. 이것을하기위한 일반적인 접근법이 있습니까?test
에 중첩 된 lapply를 사용하지 않으려면 어떻게해야하나요? 누구든지이 문제를 해결할 수있는 아이디어를 제안 할 수 있습니까? 감사합니다
감사합니다 :
신선한 R 세션에서 예제 코드를 실행하려고 했습니까? 또한 당신은 당신이하려고하는 것을 단지 붙여 넣기 코드와 기술해야한다. – hrbrmstr
@hrbrmstr : 예, 시도했지만, 사용자 정의 함수에서 중첩 된 lapply를 사용하면 예상치 못한 결과가 반환됩니다. 위의 코드는 내 함수의 결과를 기반으로 시뮬레이트됩니다. 큰 data.frame 객체를 다루기 위해 중첩 된 구조를 대체하기위한 일반적인 전략을 모색 중입니다. 이 문제를 피하기위한 일반적인 접근 방법은 무엇입니까? – user88911
@ Jimbou : 목록과 같은 객체를 제외한 모든 가능한 출력을 허용 할 수 있습니다. 대답으로 가능한 접근법을 자세히 설명해 주시겠습니까? – user88911