【问题标题】:Copies of vectors from list列表中向量的副本
【发布时间】:2021-11-27 16:45:53
【问题描述】:

我有一个向量列表,并且想在一定时间内复制每个向量。因此,最后我想要一个包含复制向量的列表,例如 5 个副本。

v1=c(1,2,3)
v2=c(4,5,6)
v3=c(7,8,9)

my_list=list(v1,v2,v3)

如果我申请代表它有效,我得到了副本,但我必须单独做。

rep(my_list[1], times=5)

如果我尝试使用 for 循环为列表中的每个向量自动执行此操作,则它不起作用。

  new_list =  for (i in 1:3){

    rep(my_list[i], times=5)
}

【问题讨论】:

    标签: r loops copy


    【解决方案1】:

    使用replicate

     do.call(c, replicate(5, my_list, simplify = FALSE))
    

    【讨论】:

      【解决方案2】:

      您可以使用重复索引对列表进行子集化:

      my_list[rep(seq_along(my_list), each = 5)]
      
      #> [[1]]
      #> [1] 1 2 3
      #> 
      #> [[2]]
      #> [1] 1 2 3
      #> 
      #> [[3]]
      #> [1] 1 2 3
      #> 
      #> [[4]]
      #> [1] 1 2 3
      #> 
      #> [[5]]
      #> [1] 1 2 3
      #> 
      #> [[6]]
      #> [1] 4 5 6
      #> 
      #> [[7]]
      #> [1] 4 5 6
      #> 
      #> [[8]]
      #> [1] 4 5 6
      #> 
      #> [[9]]
      #> [1] 4 5 6
      #> 
      #> [[10]]
      #> [1] 4 5 6
      #> 
      #> [[11]]
      #> [1] 7 8 9
      #> 
      #> [[12]]
      #> [1] 7 8 9
      #> 
      #> [[13]]
      #> [1] 7 8 9
      #> 
      #> [[14]]
      #> [1] 7 8 9
      #> 
      #> [[15]]
      #> [1] 7 8 9
      

      reprex package (v2.0.0) 于 2021-10-07 创建

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多