問題タブ [r-environment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R が提供された環境の親ツリーで指定されたオブジェクトを検索しないのはなぜですか?
構成:
私は R を学んでいて、現在 R の環境について読んでいます。いくつかの練習をしていて、自分で作成した例を思いつきましたが、まだ説明と概念の理解ができていないようです。 Rでオブジェクトを適切に検索します。一般的に言えば、私がこれまでに理解したこと (間違っていたら訂正してください) は、R が現在の環境でオブジェクトを見つけられない場合、既存のすべての親環境を順番に呼び出すということです。実際にどのように機能するかを確認するために、次のプログラムを作成しました。
そして、呼び出し元の環境としてe10を選択して上記のプログラムを実行する方法は次のとおりです
testvarが環境e4で定義されており、e4がe10の祖先であることを考えると、 testvarの値を見つけるために、R が親ツリーで e10 から e4 まで上がると予想しました。しかし、プログラムは次のエラーで停止します。
私が誤解していたことを教えていただけますか?私が使用するという事実with(data = e10, ...)
は、関数呼び出しに使用される環境が e10 であることを意味するべきではありませんか?
r - パッケージのソーシング時に R の S3 メソッドのディスパッチが機能しない
現在、devtools の「ヘルプ」を使用して R でパッケージを開発しています。つまりload_all(path = ...)
、この段階でパッケージが R スタジオに読み込まれ、R ディレクトリの関数が利用可能になります。ここまでは順調ですね。しかし、パッケージ内に単純な S3 階層を実装しようとすると、ディスパッチが機能せず、次のエラーがスローされます。
UseMethod("generic_function", obj) のエラー: クラス "c('data.frame', 'myclass')" のオブジェクトに適用される 'generic_function' に適用可能なメソッドがありません
ただし、同じジェネリック関数とそのメソッドを実装し、それらを現在の環境に明示的にロードすると、ディスパッチが機能します。
ここでボンネットの下で何が起こっているのかを説明することはできません。パッケージをロードするとディスパッチは機能しませんが、環境で「オンザフライでロード」すると機能します。
私はあなたの助けに感謝します。ブラジル
...コードを要求したとおり:
r - renv を使用して、プロジェクト内で使用される R のバージョンを更新する方法
R 3.6 を使用するプロジェクトがあり、R を 4.0.2 にアップグレードしました。このプロジェクトでは 4.0.2 を使用したいと考えています。どうすればいいのか、完全に削除して再構築する必要があるのか 疑問に思っていrenv/
ますか?
編集
私は次のことをしました:
そして2
、上記から選択すると、これは合理的と思われます。