私は機能を持っています:
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
実行され、プロットが正常に生成されます。
をローカル環境に設定し、(明らかに)の代わりに を使用するなど、ここで提案されているようなソリューションの実装を試みました。誰でも問題の原因と可能な解決策を提案できますか? これらの関数を直接呼び出すことに戻ることができますが、むしろそれらを何かの中に入れ子にすることができます (または、それを行うことができない/すべきではない理由を理解します)。environment
aes_string()
aes()
ありがとう!