종종 ddply를 적용하는 다른 data.frame을 서브 세트하는 변수로 함수 내에서 data.frame을 서브 세트해야합니다. 이렇게하려면 함수 안에 변수를 명시 적으로 다시 작성하고보다 우아한 방법이 있는지 궁금합니다. 아래에는이 작업을 수행하는 현재의 접근 방식을 보여주기위한 간단한 예제가 포함되어 있습니다.ddply에 지정된 변수로 서브 세트
d1<-expand.grid(x=c('a','b'),y=c('c','d'),z=1:3)
d2<-expand.grid(x=c('a','b'),y=c('c','d'),z=4:6)
results<-ddply(d1,.(x,y),function(d) {
d2Sub<-subset(d2,x==unique(d$x) & y==unique(d$y))
out<-d$z+d2Sub$z
data.frame(out)
})
이상하게 보입니다 만, 테스트가 이상하게 보였기 때문에, d2의 행 번호가 vector가 될 것이므로 d2에서 x == unique (d $ x)를 사용해야하는 이유는 무엇입니까? 나는 당신이 실제로 선택하려고하는 (그리고 선택되지 않은) 것을 알아낼 수 없다. –
감사합니다. 실제로 문제에 대한 내 설명은 약간 혼란 스러웠을 것입니다. 나는 @flodel이 내가 의미했던 것을 잘 포착했다고 생각한다. 내 문제는 실제로 두 데이터 프레임을 같은 변수로 나누고 싶다는 것입니다. – danilinares