Здесь представлены опции как для базовых строковых функций R, так и для stringr
.В обоих случаях идея состоит в том, чтобы разделить текст в каждом пробеле, а затем заменить границы слов одинарной кавычкой ('
).Причиной этого является отличие от двойных кавычек ("
), которые начинаются и заканчиваются строкой, т. Е. Иметь кавычки в строке.Вы должны быть в состоянии сделать то же самое, избегая двойных кавычек (\\"
), но я нахожу, что редко сопоставляю их должным образом, когда пытаюсь это сделать, поэтому я не проверял это.Затем вы свернете этот вектор строк обратно запятыми (это также может быть запятая, за которой следует пробел).
С базовыми функциями:
library(dplyr)
library(stringr)
txt <- "A B C D"
split_txt <- strsplit(txt, split = "\\s")[[1]]
quoted <- gsub("\\b", "'", split_txt)
paste(quoted, collapse = ",")
#> [1] "'A','B','C','D'"
Или с обратными точками:
txt %>%
str_split("\\s") %>%
`[[`(1) %>%
str_replace_all("\\b", "'") %>%
str_flatten(collapse = ",")
#> [1] "'A','B','C','D'"