将字符串作为参数传递给粘贴函数

时间:2020-08-31 06:03:20

标签: r concatenation quasiquotes

我正在尝试将字符串变量名称传递给粘贴函数,以将所有字符串粘贴在一起。这是一个mwe:

#bind strings to variable names
a <- c("abc", "def", "ghi")
b <- c("jkl", "mno", "pqr")
c <- c("stu", "vwx", "yz1")

paste(eval(letters[1:3]))
# "a" "b" "c"

但是,我想要的是将3个变量的内容粘贴到一个字符串中

"abc def ghi jkl mno pqr stu vwx yz1"

我知道准报价,所以我尝试了

get(letters[1:3])

但这只能给我

"abc def ghi"

我知道这个主题在互联网上被疯狂的细节所覆盖,但是我尝试过每个rlang动词都没有成功。

2 个答案:

答案 0 :(得分:1)

@MrFlick建议的答案很简单。这是对单个字符使用get的方法。

paste0(sapply(letters[1:3], get, envir = .GlobalEnv), collapse = " ")
#[1] "abc def ghi jkl mno pqr stu vwx yz1"

答案 1 :(得分:1)

为完整起见,要应用准引号,您只需要将字符串转换为符号:

s <- lapply( letters[1:3], as.name )
paste( do.call("c", s), collapse=" " )
# [1] "abc def ghi jkl mno pqr stu vwx yz1"