В одном пакете, над которым я работаю, я сталкиваюсь с проблемой, которая выглядит просто - но я не могу понять:
Подфункция задается двумя аргументами:
-
obj
, adata.frame
-
foo
, acall
Например:
> head(obj)
cadmium copper lead zinc elev
1 11.7 85 299 1022 7.909
2 8.6 81 277 1141 6.983
3 6.5 68 199 640 7.800
4 2.6 81 116 257 7.655
5 2.8 48 117 269 7.480
6 3.0 61 137 281 7.791
> foo
log(cadmium)
> class(foo)
[1] "call"
В этом примере я хочу создать вектор x <- log(obj$cadmium)
. Как мне это сделать? Я попытался использовать with()
, но я не получил ожидаемого результата:
> with(obj, foo)
log(cadmium)
foo
- это вызов, созданный пользователем путем задания преобразования в столбце data.frame obj
:
my_function(obj, foo = log(cadmium)) { ... }
dput()
фрагмента данных:
obj <- structure(list(cadmium = c(11.7, 8.6, 6.5, 2.6, 2.8, 3), copper = c(85L,
81L, 68L, 81L, 48L, 61L), lead = c(299L, 277L, 199L, 116L, 117L,
137L), zinc = c(1022L, 1141L, 640L, 257L, 269L, 281L), elev = c(7.909,
6.983, 7.8, 7.655, 7.48, 7.791)), .Names = c("cadmium", "copper",
"lead", "zinc", "elev"), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))