我正试图将字符串变量名传递给粘贴函数,以将所有字符串粘贴在一起。这是一个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
动词都没有成功。
@MrFlick提出的答案简单明了。以下是对单个字符使用get
的方法。
paste0(sapply(letters[1:3], get, envir = .GlobalEnv), collapse = " ")
#[1] "abc def ghi jkl mno pqr stu vwx yz1"
为了完整性,要应用准引号,只需将字符串转换为符号:
s <- lapply( letters[1:3], as.name )
paste( do.call("c", s), collapse=" " )
# [1] "abc def ghi jkl mno pqr stu vwx yz1"