У меня вопрос относительно создания функции в R, которая будет вводить данные пользователя и по существу проверять:
Я собрал этот код до сих пор, но получаю сообщение об ошибке: неожиданно еще в else. Кроме того, я хотел бы создать условие, которое не может явно проверять длину два или три, и явно проверять все эти элементы.
Вот упрощенная повторяемая версия того, что я пытаюсь сделать:
library(tokenizers)
a <- c("alpha", "beta", "gamma", "delta", "epsilon")
a <- as.data.frame(a)
colnames(a) <- c("words")
test <- function(phrase){
words <- tolower(phrase)
words <- tokenize_words(words)
if (length(words[[1]])> 3){
"Phrase too long"
} else if (length(words[[1]]) == 2){
if (words[[1]][1] %in% a$words){
"Not Approved"
} else if (words[[1]][2] %in% a$word){
"Not Approved"
} else
{
words[[1]]
}
}
else {
if (words[[1]] %in% a$word){
"Not Approved"
}
else {words[[1]]}
}
}
test("Alpha Test")
Это должно вернуть на нем «Не одобрено»; но если бы он был длиной 3 или длиной 1 и содержал одно из запрещенных слов, я бы хотел, чтобы он возвращался как не утвержденный.
Спасибо!
Одно, я вижу, вы ничего не возвращаете, вам стоит использовать return?
Я перезапустил R, и код запущен. Но любые предложения о том, как сделать его более компактным, были бы замечательными.





Ваш код не выдает мне ошибок. +1 для воспроизводимого примера tho.