这样做的目的是为字符串列表表示中的所有字符串添加引号。
下一次尝试:
input_text <- "[innovation manager, manager director, senior manager]"
scan(text=input_text, what="")返回:
'[innovation" "manager," "manager" "director," "senior" "manager]'预期产出可能如下所示:
'["innovation manager", "manager director", "senior manager"]'我遗漏了什么?
发布于 2021-11-24 22:35:59
一种方法--用gsub删除方括号,在, (strsplit)处拆分,提取list元素,插入双引号(dQuote),并将拆分的元素放在一起
sprintf('[%s]', paste(dQuote(strsplit(gsub("[][]", "", input_text),
",\\s*")[[1]], FALSE), collapse=", "))-output
[1] "[\"innovation manager\", \"manager director\", \"senior manager\"]"发布于 2021-11-24 22:35:51
可能的解决办法;
library(tidyverse)
input_text <- "[innovation manager, manager director, senior manager]"
input_text %>%
str_remove_all("\\[|\\]") %>%
str_split(", ") %>% unlist
#> [1] "innovation manager" "manager director" "senior manager"但是,如果OP希望将结果作为单个字符串,则可以使用以下方法:
input_text %>%
str_remove_all("\\[|\\]") %>%
str_split(", ") %>%
map(~ str_c('"',.x, '"')) %>% unlist %>%
str_flatten(collapse = ", ") %>%
str_c("[",.,"]")
#> [1] "[\"innovation manager\", \"manager director\", \"senior manager\"]"https://stackoverflow.com/questions/70103699
复制相似问题