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()请参阅常见问题解答2.22

所有8条评论

@eantonya您可以提供boxplot用法示例吗?

FAQ 2.22所述,这里的问题与:=密切相关。

我们能做的最好的就是隐式地返回_iff_ fn()返回data.table 。 否则,我们将不得不像print.data.table巧妙地使用.global$print一样修改_all_打印方法。

我现在已经添加了标签“无法修复”。 由于R强制在[上显示可见性,这是​​一个问题。 如果您同意,我们可以这样关闭(除非有其他选择可以提出)。

也标记@mattdowle

我认为这可能与#1471相同。 刚发现这个。

太糟糕了,当R是invisible的结果时,R不返回带有"invisible"属性的东西。 这将使此操作变得容易。

链接回http://stackoverflow.com/a/36093766/403310 ,此处链接。 我们可以重新访问FAQ 2.18(当我刚刚对其进行测试时,该解决方案对我而言不起作用)以及2.22,并且自从上次查看以来已经过去了一年,因此可能需要再次尝试。

唔。 只是注意到with(dt, fn()) _doesn't_不输出输出。 我想这与整个.global$print问题的关系比什么都重要。

不,是因为R在内部强制[可见性与with()请参阅常见问题解答2.22

不能与:=一起使用的全局打印抑制在这里工作吗?

根据Arun的评论,我们对R的[强制可见性无能为力,解决方案是将data.table表达式包装到invisible

此页面是否有帮助?
0 / 5 - 0 等级