отправка методов S4 с выражением в качестве аргумента

Я пытаюсь убедить метод S4 использовать выражение в качестве аргумента, но я всегда получаю возвращается ошибка. Тривиальный пример, который немного иллюстрирует то, что я пытаюсь здесь сделать:

setGeneric('myfun',function(x,y)standardGeneric('myfun'))

setMethod('myfun',c('data.frame','expression'),
          function(x,y) transform(x,y) )

Если я сейчас попробую:

> myfun(iris,NewVar=Petal.Width*Petal.Length)
Error in myfun(iris, NewVar = Petal.Width * Petal.Length) : 
  unused argument(s) (NewVar = Petal.Width * Petal.Length)

> myfun(iris,{NewVar=Petal.Width*Petal.Length})
Error in myfun(iris, list(NewVar = Petal.Width * Petal.Length)) : 
 error in evaluating the argument 'y' in selecting a method for 
 function 'myfun': Error: object 'Petal.Width' not found

Кажется, что аргументы уже оцениваются в универсальном, если я правильно это понимаю. в методы кажется по крайней мере сложной. Есть ли возможность использовать методы диспетчеризации S4 с использованием выражений?


edit: изменено на преобразование, поскольку это лучший пример.

11
задан skaffman 10 August 2011 в 16:39
поделиться