Pergunta

Eu tenho um conjunto de dados da pesquisa e gostaria de gerar gráficos de uma variável específica, agrupada pelo país do entrevistado. O código que escrevi para gerar as parcelas até agora é:

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()
}

A coisa verdadeiramente bizarra? Eu posso executar o isPlit (), definido country <- nextElem(countries), e depois corra o código sem enviar a linha do foreach - e obtenha um enredo adorável. Se eu enviar o foreach, recebo alguns arquivos .png em branco.

Agradeço antecipadamente por sua ajuda.

Definitivamente, posso fazer isso com loops R padrão, mas eu realmente gostaria de entender melhor foreach.

Foi útil?

Solução

Você precisa print O enredo se você quiser exibir:

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

Por padrão, os comandos GGPlot retornam um objeto de plotagem, mas o próprio comando não exibe o gráfico; Isso é feito com o print comando. Observe que, quando você executa o código interativamente, os resultados dos comandos são impressos, e é por isso que você geralmente não precisa da impressão explícita. Mas ao embrulhar em um foreach, você precisa imprimir explicitamente, pois os resultados dos comandos no corpo não serão ecoados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top