8

一連の調査データがあり、回答者の国ごとにグループ化された特定の変数のプロットを生成したいと思います。これまでにプロットを生成するために作成したコードは次のとおりです。

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

4

1 に答える 1

11

print表示する場合は、プロットする必要があります。

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

デフォルトでは、ggplot コマンドはプロット オブジェクトを返しますが、コマンド自体は実際にはプロットを表示しません。それはprintコマンドで行われます。コードをインタラクティブに実行すると、コマンドの結果が出力されることに注意してください。これが、明示的な出力を必要としないことが多い理由です。ただし、 でラップする場合foreachは、ボディ内のコマンドの結果がエコーされないため、明示的に出力する必要があります。

于 2009-08-30T04:51:14.133 に答える