R 如何从变量创建字符串?
在R中,我想使用存储的值创建一个字符串。在Python中,我将使用它来提高可读性R 如何从变量创建字符串?,r,string,R,String,在R中,我想使用存储的值创建一个字符串。在Python中,我将使用它来提高可读性 >>> 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
>>> 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'
a_val一个选项是Wickham's的Jim Hester的glue
库
示例来自:
一个选择是Wickham's的Jim Hester的glue
库
示例来自:
如果我不需要特定的分隔符,我总是使用paste0
它的样式。对于“填充空白”样式的字符串,我更喜欢sprintf
,因为字符串中有要填充的孔<代码>粘贴
在字符串的大部分片段都已经在向量中并且您不想在常量和变量之间保持交替时很好。你问题中的例子是一个很好的例子,说明了我更喜欢sprintf
——我认为它更简洁、更可读。如果你不连接,你就不必折叠。换句话说,您只需执行粘贴0('a',a_val','u b',b_val',.csv')。请注意,我使用带有“”作为默认分隔符的paste0
(而paste
default del.是空格)在任何函数前面加上gsubfn中的fn$,然后您可以使用$var
或`R code
`对参数执行字符串插入。e、 g.库(gsubfn);fn$read.csv(“a`a_val`.`b`b_val`.csv”)
如果使用$var格式而不是反引号格式,则变量名中不能有下划线,因为它以特殊字符结尾。e、 g.a如果我不需要特定的分隔符,我总是使用paste0
它的样式。对于“填充空白”样式的字符串,我更喜欢sprintf
,因为字符串中有要填充的孔<代码>粘贴
在字符串的大部分片段都已经在向量中并且您不想在常量和变量之间保持交替时很好。你问题中的例子是一个很好的例子,说明了我更喜欢sprintf
——我认为它更简洁、更可读。如果你不连接,你就不必折叠。换句话说,您只需执行粘贴0('a',a_val','u b',b_val',.csv')。请注意,我使用带有“”作为默认分隔符的paste0
(而paste
default del.是空格)在任何函数前面加上gsubfn中的fn$,然后您可以使用$var
或`R code
`对参数执行字符串插入。e、 g.库(gsubfn);fn$read.csv(“a`a_val`.`b`b_val`.csv”)
如果使用$var格式而不是反引号格式,则变量名中不能有下划线,因为它以特殊字符结尾。e、 g.a我站着纠正。我的大脑把tidyverse默认为Wickham。Jim Hester说“与@hadley合作,使R中的数据科学更容易、更快、更有趣。”我的观点是正确的。我的大脑把tidyverse默认为Wickham。Jim Hester说“与@hadley合作,使R中的数据科学更容易、更快、更有趣。”
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.