2

私は機能を持っています:

MakeTxHistogram <-function(d,x,plot.labels) {
  print(dim(d))
  ggplot(data=d) +
    geom_histogram(aes_string(x=x,y="..density..",fill="var1")) + 
    scale_x_log10() + facet_grid( var1~ var2 ) +  labs(title=plot.labels[1],x=plot.labels[2]) +
    theme
}

MakeTxHistogramスクリプトまたはコンソールから直接呼び出されたときに、まさに私が望むことを行います。だから私は新しい関数を作成しました:

TestAndPlot<-function() {
 MakeTxHistogram(d1,x,plot.labels)
 MakeTxHistogram(d2,x,plot.labels)
 RunAStatisticalTest()
}

を呼び出すTestAndPlot()と、両方のMakeTxHistogram(...)実行が呼び出されますが、プロットは生成されません (print()ただし、関数は機能します)。代わりに次のように書く場合TestAndPlot

TestAndPlot<-function() {
 RunAStatisticalTest()
 MakeTxHistogram(d1,x1,plot.labels1)
 MakeTxHistogram(d2,x2,plot.labels2)
}

その後RunAStatisticalTest()、動作し、最初の呼び出しはMakeTxHistogram実行されますが、プロットは生成されず、2 回目の呼び出しはMakeTxHistogram実行れ、プロットが正常に生成されます。

をローカル環境に設定し、(明らかに)の代わりに を使用するなど、ここで提案されているようなソリューションの実装を試みました。誰でも問題の原因と可能な解決策を提案できますか? これらの関数を直接呼び出すことに戻ることができますが、むしろそれらを何かの中に入れ子にすることができます (または、それを行うことができない/すべきではない理由を理解します)。environmentaes_string()aes()

ありがとう!

4

0 に答える 0