Это работает как отдельный оператор, но с ошибками при реализации в функции: учитывая фрейм данных dummyDF со столбцами Status и LastStatusChangeDate, это работает:
> nrow(dummyDF[which(dummyDF$Status == "Confirmed" & dummyDF$LastStatusChangeDate < as.Date("2018-11-30")),])
[1] 9
Но когда я реализую его в функции:
QueueLength <- function(df, Status, LastDate){
nrow(df[which(df$Status == Status & df$LastStatusChangeDate < as.Date(LastDate)),])
}
и вызвать его таким образом:
QueueLength(dummyDF, "Confirmed", "2018-11-30")
Я получаю эту ошибку: Ошибка в df $ Status == Status: сравнение этих типов не реализовано
Так в чем же разница между типами?Я запустил эту строку:
> typeof(dummyDF$Status)
[1] "list"
ОК, поэтому я пытаюсь сравнить одну строку со списком строк.Я понимаю, почему это проблема, но она не учитывает, что тело функции работает идеально, когда я выполняю ее в интерактивном режиме, как описано выше.
У любого есть мысли о том, как сделатьэта работа в функции?Спасибо.