Hi Masters,
I have this simple df:
source <- data.frame(
stringsAsFactors = FALSE,
URN = c("aaa", "bbb", "ccc"),
Name = c("xxx", "xxx", "yyy"),
Date = c("2019-04-29", "2019-11-04", "2019-06-18"),
Q1 = c("None.", NA, "No comments related to this exercise"),
Q2 = c("Nothing", "I have nothing in common", "NA"),
Q3 = c("Service", "All good", "aa"),
Q4 = c(2019, 2020, 2020),
Q5 = c(10, 9, 8)
)
Now, I need to select string variables plus some specified variables (in this case just Q5)
library(dplyr)
library(tidyr)
selected <- select(source, where(~is.character(.x)), Q5)
selected
Now, I would like to merge all string variables with long comments (longer that 10 characters).
Unfortunately ifendo's solution like this:
library(tidyr)
merged_comments <- selected %>%
unite("all_comments", where(~is.character(.x) && any(nchar(.x) > 10)), sep = "/", remove = FALSE, na.rm = FALSE)
is not working.
Do you have other options?
Maybe I should select long comments in the first stage by something like this:
selected <- select(source, where(~is.character(.x) && any(nchar(.x) > 10)), Q5, URN)
and then merge all character variables apart from URN?
library(tidyr)
merged_comments <- selected %>%
unite("all_comments", where(~is.character(.x),-URN,-Name), sep = "/", remove = FALSE, na.rm = FALSE)
Any suggestions?