2015-01-29 13 views
0

큰 판매 데이터베이스를 통해 의미가있는 방법 인 d_ply과를 결합하여 평균 가격 차트와 누적 수량 차트를 결합하는 데 어려움을 겪고 있습니다.).격자에서 plyr 함수와 xyplot 결합

내 행동 계획은 데이터 프레임을 준비하고 하위 세트를 xyplot (주당 패널 생성) 및 d_ply (판매되는 모든 다른 제품 코드에 대해 xyplot 적용)의 조합으로 사용하는 것입니다.

library(lattice) 
library(latticeExtra) 
library(plyr) 
set.seed(1) 
mydf <- as.data.frame(cbind(COD=rep(c("AB", "CD", "EF", "GH", "IJ"),20), SPEC = rep(c("a","b","c","d","e","f","g","h","i","j"),10))) 
mydf$dates <- seq(as.Date("2014-09-01"), by=1, length.out=25) 
mydf$x <- as.numeric(rnorm(100)) 
mydf$z <- as.numeric(rnorm(100)) 
mydf$deltaxz <- mydf$x-mydf$z 
before=as.Date("2014-09-11") 
after=as.Date("2014-09-03") 

mydf=mydf[mydf$dates<=before & mydf$dates>=after,] 

내가 원하는 것은 dataframe 각 COD에 대해 다음 격자 객체를 얻을 수 있습니다 :

의 내가 그것을 세트에 dataframe (더미 코드) 유용한 값의 다음과 같은 유형을 가정 해 봅시다

: 나는 유용한 plyr 기능을 적용 할 줄 알았는데, 내 선택은 d_ply이었다 무엇
graph1 <- xyplot (deltaxz ~ dates | SPEC, data=df, type=c("p","g"), col=c("black"), layout=c(1,3)) 
graph2 <- xyplot (1/deltaxz ~ dates | SPEC, data=df, type=c("p","g"), col=c("red"), layout=c(1,3)) 

그래서 다음과 같은 라인을 썼다 지금은 d_ply과 함께 위의 기능을 사용하려고하면

, 나는 격자 객체를하지 않지만, null 객체 :

graphic1 <- d_ply(mydf, .(mydf$COD), graph1, .print=T) 
graphic2 <- d_ply(mydf, .(mydf$COD), graph2, .print=T) 

나는 두 개의 격자 객체가 내가 원하는 때문입니다 필요한 이유 그 중 하나를 다른 하나의 아래에 표시하여 무언가를 보여줍니다 (실제 판매 수치를 사용하여 분명하지만 더미 데이터 프레임은 분명하지 않음). 이것은 다른 도전이 될 것이므로, 지금은 요청에 충실합니다. 제안 사항이 있으십니까? 사전에
감사합니다, 모두의

답변

1

먼저
MZ의 그래프 1/그래프 2 기능에 할당()은 무엇인가? 그건 전혀 불필요한 것 같습니다. 그러니 둘째

graph1 <- function(df) {xyplot (deltaxz ~ dates | SPEC, data=df, type=c("p","g"), col=c("black"), layout=c(1,3))} 
graph2 <- function(df) {xyplot (1/deltaxz ~ dates | SPEC, data=df, type=c("p","g"), col=c("red"), layout=c(1,3))} 

과에 사람들을 변경 d_ply는 특히 아무것도 (NULL)을 반환하지하기위한 것입니다. 당신이 목록에서 결과를 수집 할 경우, 그럼 당신은 그래서 graphic1$AB와 함께 각각의 그래프에서 얻을 수

graphic1 <- dlply(mydf, .(mydf$COD), graph1) 
graphic2 <- dlply(mydf, .(mydf$COD), graph2) 

를 사용합니다.

+0

감사합니다. MrFlick! 이제는 꽤 쉽다는 것을 알았지 만, 나는 이전 코딩을 바꾸고 싶지 않았기 때문에 (또는 더 잘, 나는 그것에 대해 무엇을 만질 지 확신 할 수 없었다) 매우 고집적이었다. 이제는 l_ply를 사용하여 합리적인 방법으로 함께 그려 봅니다. 다시 한번 감사드립니다! – MaZe