【问题标题】:I want to combine a concatenation of two lists [duplicate]我想结合两个列表的串联[重复]
【发布时间】:2020-11-05 10:48:48
【问题描述】:

我需要创建一个将数字 c(1:10) 和术语 c("-KM","-COX") 组合在一起的向量,这样它就会变成这样:

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

我尝试使用 expand.grid 来执行此操作,但是它返回一个数据框,我需要它返回一个向量。对我如何做到这一点有任何帮助吗?

【问题讨论】:

  • c(t(outer(1:10, c("-KM","-COX"), paste0)))

标签: r combinations combinatorics string-concatenation


【解决方案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")

【讨论】:

    【解决方案2】:

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

    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"
    

    【讨论】:

      猜你喜欢
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 2023-02-20
      相关资源
      最近更新 更多