Возможно ли в выражении 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()
.