【问题标题】:Create a list by combining two vectors element-wise [duplicate]通过按元素组合两个向量来创建一个列表[重复]
【发布时间】:2021-09-14 23:24:12
【问题描述】:

我试图通过按元素组合两个相同长度的向量来生成一个列表。这是一个可重现的示例。

a <- c(1:3)
b <- c("a", "b", "c")

使用这两个向量,我希望创建以下内容:

goal <- list(list(1, "a"), list(2, "b"), list(3, "c"))

我尝试了几种不同的方法,但似乎没有任何效果。

list(as.list(a), as.list(b)) # Not working
as.list(as.list(a), as.list(b)) # Not working as well
as.list(outer(a,b, paste)) # Not working

【问题讨论】:

    标签: r list


    【解决方案1】:

    你使用Map -

    Map(list, a, b)
    
    #[[1]]
    #[[1]][[1]]
    #[1] 1
    
    #[[1]][[2]]
    #[1] "a"
    
    
    #[[2]]
    #[[2]][[1]]
    #[1] 2
    
    #[[2]][[2]]
    #[1] "b"
    
    
    #[[3]]
    #[[3]][[1]]
    #[1] 3
    
    #[[3]][[2]]
    #[1] "c"
    

    map2 in purrr -

    purrr::map2(a, b, list)
    

    【讨论】:

    • mapply(list, a, b, SIMPLIFY = FALSE)
    猜你喜欢
    • 2016-02-15
    • 2020-02-27
    • 2012-08-30
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    相关资源
    最近更新 更多