Reputation: 18584
In R, I want to create a string using stored values. In Python I would use f-strings for improved readability.
>>> a_val = 1
>>> b_val = 99
>>> fname_python = f'a{a_val}_b{b_val}.csv'
>>> fname_python
a1_b99.csv
I have found 2 ways to do this in R, (1) paste
and (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'
Is there something more similar to Python's f-strings?
Upvotes: 1
Views: 355
Reputation: 558
An option is the glue
library by Jim Hester from Wickham's tidyverse.
Example from the Github README:
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")}.')
My name is Fred, my age next year is 51, my anniversary is Saturday, October 12, 1991.
Upvotes: 6