Ok, final attempt.
All these are trivial variations of the initial solution I gave you, so If you are going to be cleaning text a lot, I recommend you to learn about regular expressions.
library(tidyverse)
source <- data.frame(stringsAsFactors=FALSE,
URN = c("test1", "test2", "test3", "test4", "test5",
"test6", "test7", "test8", "test9", "test10", "test11"),
Test.heading = c("goede uitleg", "Goede sfeer",
"juiste behandeling", NA, "vakkundige afhandeling",
"No comment", NA, NA, "goede uitleg", "goede uitleg", "-"),
Recommendation.comment = c("-", "xxx", NA, NA, "zzz", "uw verkoper",
"correcte verkoop", "goede uitleg", "professioneel !!!",
"Goeie service", "nee"),
Other.comment = c("ab", "zeer goede uitleg over de aankoop",
"uitleg en vriendelijkheid van de verkoper", NA,
"Bob gaf heel goede uitleg!", NA, "eerder genoemd", NA, NA,
"geen opmerkingen\r\n", "Genoeg info")
)
source %>%
mutate_all(~str_remove_all(.x, "^.{1,2}$")) %>% # Remove sentences with less than 3 characters
mutate(all_comment = paste(Test.heading, Recommendation.comment, Other.comment),
all_comment = str_remove_all(all_comment,
regex("no\\scomment?|\\snee\\s|\\sneen\\s|\\s*n.?a.?\\s*", # Remove NAs
ignore_case = TRUE)),
all_comment = str_remove_all(all_comment, "(.)\\1{2,}"), # Remove repeted characters
all_comment = str_remove_all(all_comment, "[:cntrl:]"), # Remove control characters like /n/r
all_comment = str_replace_all(all_comment, "\\s\\s+", " ")) # Remove extra spaces
#> URN Test.heading Recommendation.comment
#> 1 test1 goede uitleg
#> 2 test2 Goede sfeer xxx
#> 3 test3 juiste behandeling <NA>
#> 4 test4 <NA> <NA>
#> 5 test5 vakkundige afhandeling zzz
#> 6 test6 No comment uw verkoper
#> 7 test7 <NA> correcte verkoop
#> 8 test8 <NA> goede uitleg
#> 9 test9 goede uitleg professioneel !!!
#> 10 test10 goede uitleg Goeie service
#> 11 test11 nee
#> Other.comment
#> 1
#> 2 zeer goede uitleg over de aankoop
#> 3 uitleg en vriendelijkheid van de verkoper
#> 4 <NA>
#> 5 Bob gaf heel goede uitleg!
#> 6 <NA>
#> 7 eerder genoemd
#> 8 <NA>
#> 9 <NA>
#> 10 geen opmerkingen\r\n
#> 11 Genoeg info
#> all_comment
#> 1 goede uitleg
#> 2 Goede sfeer zeer goede uitleg over de aankoop
#> 3 juiste behandelinguitleg en vriendelijkheid van de verkoper
#> 4
#> 5 vakkundige afhandeling Bob gaf heel goede uitleg!
#> 6 uw verkoper
#> 7 correcte verkoop eerder genoemd
#> 8 goede uitleg
#> 9 goede uitleg professioneel
#> 10 goede uitleg Goeie service geen opmerkingen
#> 11 Genoeg info