【问题标题】:R combine a vector of strings with seq_lenR 将字符串向量与 seq_len 组合
【发布时间】:2021-08-08 17:51:13
【问题描述】:

如果我有一个字符串列表,x,y,z。我希望将它们与 seq_len 结合起来,因此列表将变为:x1,y1,z1,x2,y2,z2,x3,y3,z3。我怎样才能做到这一点?我试过使用粘贴,但它显然不起作用。谢谢。

a1 = c("x","y","z")
seq_len(3)

paste(a1, seq_len(3))

【问题讨论】:

    标签: r vector seq


    【解决方案1】:

    使用expand.gridpaste

    do.call(paste0, expand.grid(a1, seq_along(a1)))
    

    【讨论】:

      【解决方案2】:

      如果您打算直接使用3 而不从您的al 序列中检索它,那么有一个简单的答案:

      paste0(a1, gl(3, 3))
      # "x1" "y1" "z1" "x2" "y2" "z2" "x3" "y3" "z3"
      

      【讨论】:

        【解决方案3】:

        试试outer

        > c(outer(a1, seq_len(3), paste0))
        [1] "x1" "y1" "z1" "x2" "y2" "z2" "x3" "y3" "z3"
        

        sapply

        > c(t(sapply(a1,paste0,seq_len(3))))
        [1] "x1" "y1" "z1" "x2" "y2" "z2" "x3" "y3" "z3"
        

        【讨论】:

        • 嗨,有没有办法根据 seq_len 中的值提取那些?比如如果是seq_len(3),我要z1 = c("x1","y1","z1"),z2=c("x2","y2","z2"),z3=c( “x3”、“y3”、“z3”)。如果是 seq_len(2),我想要 z1 = c("x1","y1","z1"), z2=c("x2","y2","z2")。谢谢!
        • @SubaruSpirit 如果您只有 seq_len(2),我认为您无法获得像 c("x1","y1","z1") 这样的向量,因为您没有其他信息来生成长度为 3 的向量。跨度>
        【解决方案4】:
        paste0(a1, rep(seq_len(3), each = 3))
        # [1] "x1" "y1" "z1" "x2" "y2" "z2" "x3" "y3" "z3"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-23
          • 2015-07-25
          • 1970-01-01
          相关资源
          最近更新 更多