問題タブ [r-s3]
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 - S3 ローカル環境アプローチ、環境なし
次の S3 チュートリアルを実行しています: http://www.cyclismo.org/tutorial/R/s3Classes.html
私は「ローカル環境アプローチ」が好きです (そして、その欠点を受け入れることができます)。しかし、ローカル環境を手動で作成する理由がわかりません。functions 環境だけを使用しないのはなぜですか?
以下は、「余分な」環境がなくても機能するようです。
ここで何が欠けていますか?
r - ユーザー クラスを使用した print メソッド
メソッドとジェネリック関数を試していS3-class
ますが、私の考えの誤解を強調していると思われる問題が発生しています。おそらく、印刷がどのように機能するか、または内部でどのように保存values
および機能するかについて混乱していますか?attributes
おそらく、探しているものがよくわからないために、グーグルで検索しようとしましたが、うまくいきませんでした。
設定
クラス メソッド
coverageB
ロードせずにprint.coverage
印刷する と
だけを印刷する方法が欲しいところ0.3333333
です。
助けていただければ幸いです。ありがとう。
(補足として、そのeval(parse(...))
ステートメントは物事を行う正しい方法ではないと確信しています。そこにあるポインタも高く評価されます。)
また、これにタイトルを付けるべきかどうかもわかりませんでした-誰かがより適切な提案を持っている場合は、喜んで変更します.
r - 「関数」クラス オブジェクトの S3 メソッドをエクスポートする
関数オブジェクトは、S3 メソッドのディスパッチでうまく機能するようです。
しかし、何らかの理由で NAMESPACE ファイルにエクスポートできません。
*.function
以下のコードは、メソッドへのディスパッチで機能します。
しかし、NAMESPACE で export を次のように定義しようとすると:
R CMD チェック中にエラーがスローされます。
私もラップしようとしまし`
たが、それも役に立ちませんでした
関数クラスのメソッドをエクスポートする適切な方法は何ですか?
r - 新しい S3 クラスの新しいジェネリック関数をエクスポートするには?
work_with_myS3
新しい S3 クラスで動作するはずの新しい関数を定義しますmyS3
。
これを通常の R セッション (RStudio を使用しています) でソースすると、期待どおりに動作します。myS3
オブジェクトをフィードすると、機能します。何か奇妙なものをフィードすると、エラーがスローされます。
ただし、これをパッケージに含めるときは、ビルドし、リロードして呼び出してみます。
ヘルプページは正常に動作しますが、?work_with_myS3
. これは私がそれを文書化する方法ですdevtools::document()
:
名前空間にも次のエントリがあります。
これはなぜですか、またパッケージで機能を利用できるようにする方法は? 私は些細な間違いを犯している疑いがあります。
r - ジェネリックのクラスのオブジェクトを別のオブジェクトと同じに扱う方法
オブジェクトを NewClass に分類しました。プロットなどの関数を、あたかも既知のクラス (ヒストなど) であるかのようにオブジェクトに使用するにはどうすればよいですか?
r - R で関数の新しいクラスを定義する
そのため、説明属性を追加するために、また S3 ジェネリックを使用してすべてを処理するために、R で構築しているいくつかの関数のクラスを変更しています。基本的に、私は次のような構造を持っています
そして、私は次のようなことをします
これは問題なく動作しますが、それほどエレガントではありません。このクラスのインスタンスを構文に似た構文で定義できるように、関数の新しいクラスを定義できるかどうか疑問に思っていfunction
ます。つまり、次のように生成されるものを定義することはaddFunction
可能ですか。foo
(または同様のもの、属性を関数に追加する必要がある場所について強い感情はありません)?
読んでくれてありがとう!
更新:私はこのアイデアをもう少し実験しましたが、まだ具体的な結果には達していません.
-関数をコピーしfunction()
て別の名前を付け、後で操作するというアイデアを試しました。ただし、これは機能しません。ここで何が起こっているかについての情報があれば幸いです。
function()
プリミティブ関数であるため、より多くの手がかりを得るために、それを定義する C コードを調べてみました。function2(x)
私は特に、呼び出しからのエラー メッセージに興味をそそられました。基礎となるCコードfunction()
は
call
このことから、何らかの理由で、 、op
、args
およびの 4 つの引数のうち少なくとも 2 つrho
が現在必要であると結論付けています。の署名から、渡される 4 つの引数は、呼び出し、約束、引数のリスト、そしておそらく環境であるとdo_function()
推測しています。do_function
(これらの引数を 2 つまで NULL に設定するなど)についてさまざまな組み合わせを試しましたがfunction2
、同じ (新しい) エラー メッセージが引き続き表示されます。
CheckFormals()
このエラー メッセージは、私も調べたC 関数から返されます。
私は C にまったく堪能ではないので、ここから先、次に何をすべきかよくわかりません。
だから、これらは私の更新された質問です:
- 同じように振る舞うのとそう
function
でないのはなぜですか?R で同一と見なされるのに、function2
なぜ別の構文を使用して呼び出す必要があるのですか?function2
- 実際に関数を定義する
function2
ような適切な引数は何ですか?function2([arguments])