我想将此变量组合转换为字符串,然后用“ +”将其拆分。
例如:
list = c('apple', 'dog', paste0('Day', 1:5), paste0('Name', 1:5))
理想的结果是
"apple + dog + Day1 + Day2 + ...."
以防万一有人对动机感兴趣:我正在使用不同的预测变量进行回归,并且正在获取列名并将其组合为典型的回归表达式,例如lm (Y~ apple + dog + Day1)
。
谢谢!
答案 0 :(得分:2)
我们需要使用paste
和collapse
来将元素vector
更改为单个字符串
str1 <- paste(list, collapse= " + ")
或者使用str_c
中的stringr
library(stringr)
str1 <- str_c(list, collapse = " + ")
获得paste
输出后,请在lm
中使用它
lm(paste0("Y ~ ", str1), data = dat)
答案 1 :(得分:1)
您需要将paste
与collapse
参数一起使用,以在一个或多个向量的元素之间添加字符。
所以代码
paste(c('apple', 'dog', paste0('Day', 1:5), paste0('Name', 1:5)), collapse = " + ")
会产生
"apple + dog + Day1 + Day2 + Day3 + Day4 + Day5 + Name1 + Name2 + Name3 + Name4 + Name5"
编辑:@akrun在写我的答复时回答了这个问题:-(