Data.table: [R-Forge#5580]非表示の関数がj式で表示されるようになります

作成日 2014年06月08日  ·  8コメント  ·  ソース: Rdatatable/data.table

提出者:Eduard Antonyan; 割り当て先:誰も; R-Forgeリンク

fn = function() {invisible(1:5)}

dt[, fn()]
# [1] 1 2 3 4 5

たとえばboxplotを使用する場合、これはかなり面倒です。

bug wontfix

最も参考になるコメント

Rは内部での視認性を強制するためにはありません、それはある[とは異なり、 with()FAQ2.22を参照してください

全てのコメント8件

@eantonya boxplot使用例を教えていただけますか?

ここでの問題は、 FAQ 2.22で説明されているように、 :=に非常に関連しています。

私たちができる最善のことは、目に見えない形で_iff_ fn()data.table返すことです。 それ以外の場合は、 print.data.table.global$print巧みに使用するのと同じ方法で、印刷メソッドを_すべて_変更する必要があります。

今のところ、「修正されません」というラベルを追加しました。 ベースRが[可視性を強制する方法に問題があるため。 あなたが同意する場合、私たちはこれをそのように閉じることができます(私たちが思いつくことができる代替案がない限り)。

@mattdowleにもタグを付けます。

これは#1471と同じかもしれないと思います。 ちょうどこれを見つけました。

invisible結果である場合、Rが"invisible"属性を持つものを返さないのは残念です。 それはこれを簡単にするでしょう。

ここにリンクしているhttp://stackoverflow.com/a/36093766/403310に戻ってリンクします。 FAQ 2.18(テストしたばかりのときは解決策が機能しませんでした)と2.22を再確認でき、最後に調べてから1年以上経過しているため、別の試みが必要になる可能性があります。

うーん。 with(dt, fn())が出力を印刷しないことに気づきました。 それなら、これは何よりも.global$print問題全体に関連していると思います。

Rは内部での視認性を強制するためにはありません、それはある[とは異なり、 with()FAQ2.22を参照してください

:=機能するのと同じグローバル印刷抑制がここで機能しませんか?

Arunのコメントによると、Rの[強制的な可視性については多くのことを行うことができません。解決策は、data.table式をinvisibleにラップすることです。

このページは役に立ちましたか?
0 / 5 - 0 評価