将字符串变量传递到带有转义双引号的粘贴R函数

时间:2015-07-08 16:19:20

标签: r string

我需要这行代码完全相同的输出,

> paste('"a"','"b"')
[1] "\"a\" \"b\""

但我需要&#34; b&#34;成为一个在每次迭代中都会发生变化的变量,所以假设我有x <-"b", paste('"a"',x)或我试过的任何其他方式都没有给我想要的输出,这是

> paste('"a"','"b"')
[1] "\"a\" \"b\""

提前致谢!

OM

4 个答案:

答案 0 :(得分:5)

使用sprintf

x <- "b"
sprintf('"a" "%s"', x)
# [1] "\"a\" \"b\""

答案 1 :(得分:2)

如果您使用的是变量,则必须手动用双引号括起来。您可以使用额外的粘贴来执行此操作

> x <- "b"
> paste('"a"', paste('"', x, '"', sep=''))
[1] "\"a\" \"b\""

答案 2 :(得分:2)

必须有更好的方法,但这有效:

x<-paste0('"',"b",'"',collapse = "")

paste('"a"',x)
[1] "\"a\" \"b\""

答案 3 :(得分:1)

使用函数执行此操作的一种方法是:

quote_me <- function(...) paste0('"', unlist(list(...)), '"')
x <- "b"
quote_me("a", b)
#[1] "\"a\"" "\"b\""