【问题标题】:Partitioning a List of Vectors into pairs of subsequent Vectors将向量列表划分为成对的后续向量
【发布时间】:2015-06-23 17:04:16
【问题描述】:

如果我有这样的列表:

ll <- list(c(1,2),c(2,3),c(3,4),c(4,5))

我怎样才能把它分成:

list(list(c(1,2),c(2,3)),list(c(2,3),c(3,4)),list(c(3,4),c(4,5)))

Mathematica,我有函数Partition,我可以在哪里做:

Partition[ll, 2]

但我在 R 中没有找到等价物。

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以试试Map

    r2 <- Map(list, ll[-length(ll)], ll[-1])
    r1 <- list(list(c(1,2),c(2,3)),list(c(2,3),c(3,4)),list(c(3,4),c(4,5)))
    identical(r1, r2)
    #[1] TRUE
    

    【讨论】:

      【解决方案2】:

      另一个选项,使用lapply

      lapply(seq(ll[-1]), function(x) list(ll[-length(ll)][[x]], ll[-1][[x]]))
      

      它也给出了相同的输出:

      identical(lapply(seq(ll[-1]), function(x) list(ll[-length(ll)][[x]], ll[-1][[x]])),
                list(list(c(1,2),c(2,3)),list(c(2,3),c(3,4)),list(c(3,4),c(4,5))))
      #[1] TRUE
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-19
        相关资源
        最近更新 更多