如何为多个字符串添加单引号并以逗号分隔(R语言)
R语言:给向量元素加单引号并合并为单个字符串
原始向量
strings <- c("apple", "banana", "029") strings # [1] "apple" "banana" "029"
期望输出
desired_strings <- "'apple','banana','029'" desired_strings # [1] "'apple','banana','029'"
你的尝试及问题
你之前的代码给每个元素添加了单引号和末尾逗号,但得到的是带多余逗号的向量,而非合并后的单个字符串:
a <- "'" paste0(mapply(paste0, a, strings, a), ",") # [1] "'apple'," "'banana'," "'029',"
正确解决方法
方法1:分步处理,用paste0和paste(collapse)
先给每个元素包裹单引号,再用逗号合并成单个字符串:
# 给每个元素加单引号 quoted_strings <- paste0("'", strings, "'") # 合并为单个字符串 desired_strings <- paste(quoted_strings, collapse = ",") # 查看结果 desired_strings # [1] "'apple','banana','029'"
方法2:一步完成,结合sprintf和paste(collapse)
用sprintf格式化每个元素为带单引号的格式,再直接合并:
desired_strings <- paste(sprintf("'%s'", strings), collapse = ",") desired_strings # [1] "'apple','banana','029'"
方法3:使用glue包(需先安装)
如果习惯更直观的语法,可以用glue包的glue_collapse:
# 先安装包(首次使用时) # install.packages("glue") library(glue) desired_strings <- glue_collapse(glue("'{strings}'"), sep = ",") desired_strings # [1] "'apple','banana','029'"
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

