嵌套列表的元素明智串联

时间:2018-09-01 12:02:38

标签: r

我有一个嵌套列表

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

是否存在一种优雅的方法来连接内部向量中的所有元素以形成一个字符向量(可能使用paste),前提是所有内部向量都具有相同的长度。

我希望我的最终结果是

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

2 个答案:

答案 0 :(得分:0)

尝试:

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"

答案 1 :(得分:0)

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"