How to get the nth element of each item of a list, which is itself a vector of unknown length

后端 未结 3 1341
-上瘾入骨i
-上瘾入骨i 2021-01-02 06:08

If we have a list, and each item can have different length. For example:

l <- list(c(1, 2), c(3, 4,5), c(5), c(6,7))

(In order to be cl

3条回答
  •  星月不相逢
    2021-01-02 06:47

    data.table::transpose(l) will give you a list with vectors of all 1st elements, all 2nd elements, etc.

    l <- list(1:2, 3:4, 5:7, 8:10)
    b <- data.table::transpose(l)
    b
    # [[1]]
    # [1] 1 3 5 8
    # 
    # [[2]]
    # [1] 2 4 6 9
    # 
    # [[3]]
    # [1] NA NA  7 10
    

    If you don't want the NAs you can do lapply(b, function(x) x[!is.na(x)])

提交回复
热议问题