Мой UDF:R Код: используя функцию с несколькими аргументами для применить функцию
testfn = function(x1, x2, x3){
if(x1 > 0){y = x1 + x2 + x3}
if(x1 < 0){y = x1 - x2 - x3}
return(y)
}
Мой Пробный тест набор:
test = cbind(rep(1,3),c(2,4,6),c(1,2,3))
Бег применяются:
apply(test, 1, testfn, x1 = test[1], x2 = test[2], x3 = test[3])
Это я получаю:
Ошибка в FUN (newX [, я], ...): неиспользованный аргумент (newX [, я])
Как я должен быть с помощью применять так, что мой UDF оценивает тестовый набор построчно ?
Я ожидал:
[1] 4-10
я представил упрощенный обобщенный UDF, потому что нужно использовать более сложные функции UDF.
Почему 6 в качестве первого значения? Сумма первой строки равна 4. – nicola