Извините помехообразующих с этим ломом, но я понятия не имею, что это неправильно ...Работа с символами в R
Мой кадр данных, кажется, как показано ниже:
DF <- data.frame(user = c(1,2,3,4,5), sentence1 = c("hl",NA,"hel","helllo",NA),sentence2 = c("hi",NA,"cheers",NA, NA))
И у меня есть функция, которая удаляет строки в DF, если NCHAR в SENTENCE1 менее 3 ...
Функция:
TooLong <- function(sentences) {
for (i in 1:nrow(sentences)) {
if (nchar(as.character(sentences[i,2])) < 3) {sentences[i,] <- sentences[i,]}
else {sentences[-i,]}
}
sentences
}
И призыв:
DF <- TooLong(DF)
Я не знаю, где ошибка и функция не работает ... Пожалуйста, не могли бы вы помочь мне кто-нибудь, и если да, то есть быстрее и лучше подходят для этого. Заранее большое спасибо.
Что значит "не работает" значит для вас? Какой результат вы ожидаете от желаемого ввода. Опишите в словах, что вы ожидаете от своей функции. – MrFlick
Да, мне. Я ожидаю, что функция удалит строку, где nchar (DF $ предложение1) <3. Итак, DF без 1., 2. и 5 строк :-) – martinkabe
'DF [grepl ('^. {3,} $', DF $ предложение1),]' – hwnd