2

我正在尝试将字符串变量名称传递给粘贴函数以将所有字符串粘贴在一起。这是一个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动词都没有成功。

4

2 回答 2

1

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

s <- lapply( letters[1:3], as.name )
paste( do.call("c", s), collapse=" " )
# [1] "abc def ghi jkl mno pqr stu vwx yz1"
于 2020-08-31T23:22:59.367 回答
1

@MrFlick 建议的答案简单明了。这是一种get在单个字符上使用的方法。

paste0(sapply(letters[1:3], get, envir = .GlobalEnv), collapse = " ")
#[1] "abc def ghi jkl mno pqr stu vwx yz1"
于 2020-08-31T06:08:00.000 回答