2017-09-01 96 views
1

在R中,我有两个字符串和一个包含多个字符串的向量。如何使用粘贴获得公式

str1 <- "this_guy" 
str2 <- "that_guy" 
strvec <- c("str3", "str4", "str5") 

我怎么能贴上这些结合在一起,使我得到:

"str1 + str2 + str3 + str4 + str5" 

糊的直接应用()如

​​

不起作用

+2

更好的使用'reformulate'。 – lmo

+0

可能的重复:https://stackoverflow.com/questions/4951442/formula-with-dynamic-number-of-variables和https://stackoverflow.com/questions/9238038/passing-a-vector-of-variables-进入lm公式。 – lmo

回答

3

我我不确定你的意思(名字或向量),所以这里都是。您可以使用ls从全局环境或mget(ls(...))拍摄模式str[0-9]+获得实际的字符串,即

paste(c(ls(pattern = 'str[0-9]+'), strvec), collapse = ' + ') 
#[1] "str1 + str2 + str3 + str4 + str5" 

paste(c(mget(ls(pattern = 'str[0-9]+')), strvec), collapse = ' + ') 
#[1] "this_guy + that_guy + str3 + str4 + str5"