R有没有Python f-string的等价物?就像Python中的这个例子:
name = "Eric"
age = 42
f"Hello, {name}. You are {age}."我知道paste和paste0,但它们要求您用逗号分隔不同的元素。我在网上搜索的时候找不到任何关于它的东西。
发布于 2021-01-21 20:27:01
您可以使用glue
library(glue)
name <- "Eric"
age <- 42
glue('Hello, {name}. You are {age}.')
#> Hello, Eric. You are 42.发布于 2021-09-13 04:29:53
发布于 2021-01-21 20:35:49
gsubfn包允许您在任何函数前面加上fn$,在这种情况下,字符参数将支持使用反引号或$符号的perl样式的字符串插值(公式表示法可以用于函数参数)。
library(gsubfn)
name <- "Eric"
age <- 42
fn$plot(0, main = "Hello, `name`. You are `age`.")反引号内的部分可以是R表达式:
fn$identity("Hello, `name`. You are `age+1`.")
## [1] "Hello, Eric. You are 43."如果可以从字符串中推断出变量名的结尾,它还支持$ notation。上面的情况并非如此,因为点在变量名中是有效的,但这是可行的:
fn$c("Hello $name")
## [1] "Hello Eric"还可以使用同一个包中的gsubfn。这将查找用大括号括起来的字符串,然后用其中的变量名替换其内容。
gsubfn("{(.*?)}", get, "Hello, {name}. You are {age}.")
## [1] "Hello, Eric. You are 42."或者可以提供一个列表作为第二个参数
L <- list(name = "Eric", age = 42)
gsubfn("{(.*?)}", L, "Hello, {name}. You are {age}.")
## [1] "Hello, Eric. You are 42."这也可以使用相同的列表。它避免使用{...},并且只要名称和年龄不出现在字符串中的其他位置,它就可以工作。它在列表中查找单词,即由单词字符组成的子串。
gsubfn("\\w+", L, "Hello, name. You are age.")
## [1] "Hello, Eric. You are 42."https://stackoverflow.com/questions/65827265
复制相似问题