首页 > 解决方案 > R列表结合

问题描述

我尝试在一个输出中组合两个列表

ls1 <- list(c('a', 'b', 'c'), c('d', 'f', 'g'))
ls2 <- list('x1', 'x2')
paste(ls2, ls1)
[1] "x1 c(\"a\", \"b\", \"c\")" "x2 c(\"d\", \"f\", \"g\")"

lapply(1:2, function(i) { paste0(unlist(ls2), unlist(ls1[i])) })
[[1]]
[1] "x1a" "x2b" "x1c"

[[2]]
[1] "x1d" "x2f" "x1g"

sapply(1:2, function(i) { paste0(unlist(ls2), unlist(ls1[i])) })
 [,1]  [,2] 
[1,] "x1a" "x1d"
[2,] "x2b" "x2f"
[3,] "x1c" "x1g"

但我需要像这样的输出:

[[1]] "x1abc"  
[[2]] "x2dfg"

这个怎么做?

标签: rlist

解决方案


ls1 <- list(c('a', 'b', 'c'), c('d', 'f', 'g'))
ls2 <- list('x1', 'x2')

代码:

ls1 <- lapply(ls1,paste0,collapse="")

paste0(ls2,ls1)
#[1] "x1abc" "x2dfg"

或很短:

paste0(ls2,lapply(ls1,paste0,collapse=""))

推荐阅读