Создайте список фреймов данных и rbind один раз вне цикла и избегайте квадратичного копирования с rbind
внутри цикла:
df_list <- lapply(df$text, function(txt) {
out <- liwcalike(txt, dictionary = data_dictionary_NRC)
return(data.frame(em1 = out$trust, em2= out$anger, origin=txt))
}
final_df <- do.call(rbind, df_list)
В случае каких-либо проблем с liwcalike
вызовите, оберните процесс в tryCatch
, чтобы вернуть NA
-строчный фрейм данных при любых ошибках:
df_list <- lapply(df$text, function(txt) {
tryCatch({
out <- liwcalike(txt, dictionary = data_dictionary_NRC)
return(data.frame(em1=out$trust, em2=out$anger, origin=txt, error=NA))
}, error = function(e)
data.frame(em1=NA, em2=NA, origin=txt, error=e)
)
}
final_df <- do.call(rbind, df_list)