Я думаю, что вы пришли из нефункционального языка. (Не язык, который является нефункциональным, а язык, который не является «функциональным языком».) Ваше выражение length(which(!is.na(chatcsv[i,4:111])))
ничего бы не сделало, потому что оно находится внутри цикла for
, но не было присвоено ни одному имени. Это просто исчезает. Вам нужно было бы создать именованный вектор (скажем, res
) с res <-numeric(0)
перед циклом, а затем внутри цикла:
res[i] <- length(which(!is.na(chatcsv[i,4:111])))
Предыдущий ответчик путал grep
и grepl
в своем комментарии. Функция grep
возвращает целочисленные значения; функция grepl
возвращает логические векторы. Они оба могут быть использованы для индексации.
Неясно, даст ли это выражение основу для дальнейших усилий. Это будет зависеть от содержимого chatcsv[i,4:111]
. Если содержимое состоит из отдельных слов, то, возможно, это будет успешно Если они являются предложениями, то это не так. Функция длины будет просто возвращать количество не-значений NA в векторе-строке. Только если ваши предыдущие (неописанные) операции создали чистый набор «слов» в этом наборе столбцов, вы получите значимые результаты.