如何在R语言中实现类似JS模板字面量的字符串插值?
R语言实现类似JavaScript模板字面量的字符串插值
下面推荐几种替代paste()的简便字符串插值方法,语法贴近JS的模板字面量风格:
1. glue包(最贴合JS模板语法)
这是最常用的方案,语法和JS的${变量}几乎一致,直接在字符串里嵌入变量即可:
# 首次使用先安装 install.packages("glue") library(glue) str <- "STRING" # 直接在字符串中用{变量名}嵌入 output <- glue("this is way simpler to do with a {str}, no more messy paste calls") print(output)
运行后直接输出拼接好的字符串,完全不需要手动处理分隔符。
2. R原生str_interp(无需额外包)
从R 4.2版本开始,utils包自带的str_interp支持${变量}的插值语法,不用装额外包:
library(utils) str <- "STRING" output <- str_interp("this uses ${str} just like JavaScript") print(output)
3. stringr包的str_glue
如果已经在使用tidyverse系列工具,stringr里的str_glue用法和glue包完全一致:
# 首次使用先安装 install.packages("stringr") library(stringr) str <- "STRING" output <- str_glue("another tidyverse option: {str}") print(output)
4. 原生sprintf(格式化字符串方案)
如果不想依赖任何包,也可以用sprintf做格式化插值,虽然占位符是%s(字符串)、%d(整数)这类,但胜在原生支持:
str <- "STRING" output <- sprintf("this is a native option using %s", str) print(output)
内容的提问来源于stack exchange,提问作者X078
相关产品推荐
相关产品推荐

