如何从变量创建字符串?

Ste*_*ell 1 string r

在R中,我想使用存储的值创建一个字符串.在Python中,我会使用f字符串来提高可读性.

>>> a_val = 1
>>> b_val = 99

>>> fname_python = f'a{a_val}_b{b_val}.csv'
>>> fname_python
a1_b99.csv
Run Code Online (Sandbox Code Playgroud)

我在R,(1)paste和(2)中找到了两种方法sprintf.

a_val <- 1
b_val <- 99

# paste and collapse are best when you have an existing vector
# fname1 <- paste(c('a', a_val, '_b', b_val, '.csv'), collapse = '')  
# paste0 is better in this example
fname1 <- paste0('a', a_val, '_b', b_val, '.csv')
# 'a1_b99.csv'

fname2 <- sprintf('a%d_b%d.csv', a_val, b_val)
# 'a1_b99.csv'
Run Code Online (Sandbox Code Playgroud)

有没有更类似于Python的f-strings的东西?

Ups*_*ide 6

一个选项是glue来自Wickham's tidyverse的 Jim Hester的图书馆.

Github自述文件中的示例:

library(glue)

name        <- "Fred"
age         <- 50
anniversary <- as.Date("1991-10-12")
glue('My name is {name},',
  ' my age next year is {age + 1},',
  ' my anniversary is {format(anniversary, "%A, %B %d, %Y")}.')
Run Code Online (Sandbox Code Playgroud)
My name is Fred, my age next year is 51, my anniversary is Saturday,
October 12, 1991.
Run Code Online (Sandbox Code Playgroud)