Взгляните на эти «простые» функции:
test <- function(x,...){
UseMethod("test",x)
}
test.default<-function(x,y,data){
message("default")
print(deparse(substitute(x)))
print(deparse(substitute(y)))
print(deparse(substitute(data)))
print(match.call())
}
test.formula <- function(x,...){
message("formula")
print(deparse(substitute(x)))
print(match.call())
}
Всё хорошо
data(iris)
test.formula(Sepal.Length~Petal.Width,iris)
test.default(Sepal.Length,Petal.Width,iris)
test(Sepal.Length~Petal.Width,iris)
Кроме этого:
test(Sepal.Length,Petal.Width,iris)
Из-за NSE: object 'Sepal.Length' not found
Есть идеи ?
iris
в качестве среды. - person IRTFM   schedule 19.03.2017test(Sepal.Length,Petal.Width,iris)
? - person Vincent Guyader   schedule 19.03.2017Sepal.Length
не является именем R в пути поиска. Это атрибутiris
с символьным значением. - person IRTFM   schedule 19.03.2017test(Sepal.Length~Petal.Width,iris)
, а сtest(Sepal.Length,Petal.Width,iris)
, я знаю, почему у меня ошибка (из-за NSE), я просто хочу найти хороший способ использовать NSE с UseMethod. - person Vincent Guyader   schedule 19.03.2017