代码之家  ›  专栏  ›  技术社区  ›  Steven C. Howell amirhosein majidi

如何从变量创建字符串?

  •  1
  • Steven C. Howell amirhosein majidi  · 技术社区  · 6 年前

    在r中,我想使用存储的值创建一个字符串。在python中,我将使用 f-strings 为了提高可读性。

    >>> a_val = 1
    >>> b_val = 99
    
    >>> fname_python = f'a{a_val}_b{b_val}.csv'
    >>> fname_python
    a1_b99.csv
    

    我在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'
    

    有什么更类似于python的f字符串吗?

    1 回复  |  直到 6 年前
        1
  •  6
  •   Hack-R    6 年前

    一个选项是 glue 来自韦翰的吉姆·海丝特的图书馆 tidyverse 是的。

    示例来自 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.