문제

설문 조사 데이터 세트가 있으며 응답자의 국가별로 그룹화 된 특정 변수의 플롯을 생성하고 싶습니다. 지금까지 플롯을 생성하기 위해 작성한 코드는 다음과 같습니다.

countries <- isplit(drones, drones$v3)
foreach(country = countries) %dopar% {
  png(file = paste(output.exp, "/Histogram of Job Satisfaction in ", country$key[[1]], ".png", sep = ""))
  country.df <- data.frame(country)  #ggplot2 doesn't appreciate the lists nextElem() produces
  ggplot(country.df, aes(x = value.v51)) + geom_histogram()
  dev.off()
}

정말 기괴한 것? isplit ()를 실행할 수 있습니다 country <- nextElem(countries), 그리고 Foreach 라인을 보내지 않고 코드를 실행하고 사랑스러운 줄거리를 얻으십시오. Foreach를 보내면 빈 .png 파일을 얻습니다.

도움을 주셔서 감사합니다.

나는 표준 R 루프로 확실히 할 수 있지만 나는 더 잘 이해하고 싶다. foreach.

도움이 되었습니까?

해결책

당신은 필요합니다 print 표시하려면 플롯 :

print(ggplot(country.df, aes(x = value.v51)) + geom_histogram())

기본적으로 GGPlot 명령은 플롯 객체를 반환하지만 명령 자체는 실제로 플롯을 표시하지 않습니다. 그것은 끝났습니다 print 명령. 대화식으로 코드를 실행하면 명령 결과가 인쇄되므로 종종 명시 적 인쇄가 필요하지 않습니다. 그러나 a foreach, 신체의 명령 결과가 반향되지 않으므로 명시 적으로 인쇄해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top