我想合并两个列表的串联

时间:2020-11-05 10:48:48

标签: r combinations combinatorics string-concatenation

我需要创建一个结合数字c(1:10)和条款c("-KM","-COX")的Vector,这样它就会变成这样:

c("1-KM", "1-COX", "2-KM", "2-COX", "3-KM", "3-COX", ...) 

我尝试使用expand.grid来做到这一点,但是它返回一个数据帧,并且我需要它来返回一个向量。我该怎么做?

2 个答案:

答案 0 :(得分:1)

尝试此版本:

apply(expand.grid(v1, v2), 1, function(x) trimws(paste0(x[1], x[2])))

 [1] "1-KM"   "2-KM"   "3-KM"   "4-KM"   "5-KM"   "6-KM"   "7-KM"   "8-KM"  
 [9] "9-KM"   "10-KM"  "1-COX"  "2-COX"  "3-COX"  "4-COX"  "5-COX"  "6-COX" 
[17] "7-COX"  "8-COX"  "9-COX"  "10-COX"

数据:

v1 <- c(1:10)
v2 <- c("-KM", "-COX")

答案 1 :(得分:1)

expand.grid之后,您可以使用paste从返回的vector中获取data.frame

do.call(paste0, expand.grid(1:10, c("-KM","-COX")))
# [1] "1-KM"   "2-KM"   "3-KM"   "4-KM"   "5-KM"   "6-KM"   "7-KM"   "8-KM"  
# [9] "9-KM"   "10-KM"  "1-COX"  "2-COX"  "3-COX"  "4-COX"  "5-COX"  "6-COX" 
#[17] "7-COX"  "8-COX"  "9-COX"  "10-COX"