是否可以在函数的expr
表达式中直接with()
访问data
参数?这就是我在概念上的意思:
> print(df)
result qid f1 f2 f3
1 -1 1 0.0000 0.1253 0.0000
2 -1 1 0.0098 0.0000 0.0000
3 1 1 0.0000 0.0000 0.1941
4 -1 2 0.0000 0.2863 0.0948
5 1 2 0.0000 0.0000 0.0000
6 1 2 0.0000 0.7282 0.9087
> with(df, subset(.data, select=f1:f3)) # Doesn't work
当然,上面的例子有点傻,但是对于这样的事情会很方便:
with(subset(df, f2>0), foo(qid, vars=subset(.data, select=f1:f3)))
我试图四处寻找environment()
等等parent.frame()
,但没有想出任何有用的东西。
也许这确实是一个关于 的问题eval()
,因为这with.default()
就是实现方式。