【问题标题】:Element wise concatenation of nested list [duplicate]嵌套列表的元素明智连接[重复]
【发布时间】:2018-09-01 12:02:38
【问题描述】:

我有一个嵌套列表

l1 <- letters
l2 <- 1:26
l3 <- LETTERS
list <- list(l1,l2,l3)

有没有一种优雅的方法可以将内部向量中的所有元素连接起来形成一个字符向量(可能使用paste),假设所有内部向量的长度相同。

我希望我的最终结果是

[1] "a1A"
[2] "b2B"
[3] "c3C"
[4] "d4D"
....
[26] "z26Z"

【问题讨论】:

  • do.call(paste0, list)
  • 这个很完美。谢谢!

标签: r


【解决方案1】:

试试:

apply(sapply(list,paste0),1,paste0,collapse="")
[1] "a1A"  "b2B"  "c3C"  "d4D"  "e5E"  "f6F"  "g7G"  "h8H"  "i9I"  "j10J" "k11K" "l12L" "m13M" "n14N" "o15O" [16] "p16P" "q17Q" "r18R" "s19S" "t20T" "u21U" "v22V" "w23W" "x24X" "y25Y" "z26Z"

【讨论】:

    【解决方案2】:

    user20650 的解决方案可能与您将获得的一样优雅。但是对于它的价值,这里有一个 dplyr 的快速破解:

    library(dplyr)
    
    ll <- list(l1,l2,l3) # I try not to use "list" as a name. Gets confusing sometimes.
    
    as.data.frame(ll) %>% 
      mutate(x = paste0(.[[1]], .[[2]], .[[3]])) %>% 
      .$x
    
    # returns
     [1] "a1A"  "b2B"  "c3C"  "d4D"  "e5E"  "f6F"  "g7G"  "h8H"  "i9I"  "j10J" "k11K" "l12L"
    [13] "m13M" "n14N" "o15O" "p16P" "q17Q" "r18R" "s19S" "t20T" "u21U" "v22V" "w23W" "x24X"
    [25] "y25Y" "z26Z"
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2020-05-08
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 2021-12-09
    相关资源
    最近更新 更多