すべてのR関数が同じプライベート変数にアクセスする一連のR関数を作成するにはどうすればよいですか?プライベート変数でR関数を作成するには?
たとえば、readSetting(key)
とwriteSetting(key,value)
という関数を作成して、両方とも同じ隠しリストsettings
で操作したいとします。私はそうのようにそれをしようとすると...
local({
settings <- list()
readSetting <<- function (key) settings[[key]]
writeSetting <<- function (key, value) settings[[key]] = value
})
...その後readSetting
とwriteSetting
はlocal
コールの外には見えません。そこに表示させたい場合は、
readSetting <- writeSetting <- NULL
local
コールの外に割り当てる必要があります。より良い方法が必要です。変数が公開されている2つの異なる方法で言わなければならないと、私のコードはDRYではないからです。
(この作品のコンテキストが、私はRのパッケージを開発していて、このコードはsource
を介してメインファイルにロードされた補助ファイルになるということです。)
この質問はHow to limit the scope of the variables used in a script?に関連しているが、答えが私の問題を解決することはありません。
'knitr'がそのオプション(' base :: options'に似ているようです)をどのように扱うのかを見ることができます。 – Gregor
おそらく私は少し遅い@Gregorですが、接続が見苦しいです。 – Nathan
これは私が考えることができる唯一のパッケージです。それは頻繁に変更されるグローバルオプションを持っています。 'knitr'が' opts_chunk'をエクスポートしなかった場合、チャンクオプションはすべて不可視(多かれ少なかれ)になる可能性があります。 – Gregor