Steven C. Howell
Steven C. Howell

Reputation: 18584

How do you create a string from variables?

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

Answers (1)

UpsideDownRide
UpsideDownRide

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

Related Questions