Я создаю функцию, и она работает, когда один из аргументов жестко запрограммирован в коде, но как только я включаю ее в список аргументов, я получаю сообщение об ошибке ... Я понимаю, что это просто, но это вводит меня в заблуждение!
## load necessary libraries
library(gsubfn)
## number of days
days <- 5
AdDayFun <- function (inarray) {
gsubfn("^\\D*\\d+\\D*\\K(\\d+)",
~ ifelse(as.numeric(x) < 5,
sprintf("%02d",as.numeric(x)+1),
"00"),
inarray,
perl=TRUE
)
}
## initial population
pop <- matrix(c("a-00-04","a-00-00","a-00-00", "dead", "a-00-00"), nrow =1)
pop
pop <- rbind(pop, AdDayFun(pop[nrow(pop), ]))
pop
Все это работает нормально, пока я не изменил функцию, требуя два аргумента, а затем получил ошибку?
AdDayFun <- function (inarray, nummax) {
gsubfn("^\\D*\\d+\\D*\\K(\\d+)",
~ ifelse(as.numeric(x) < nummax,
sprintf("%02d",as.numeric(x)+1),
"00"),
inarray,
perl=TRUE
)
}
(AdDayFun(pop[nrow(pop), ], 7))
Ошибка как таковая: Ошибка в ifelse (as.numeri c (x)