如何用lapply()合并两个R列表中的字符生成新列表?
R列表元素对应拼接解决方案
你可以通过lapply()配合索引遍历实现需求,也可以用更简洁的Map()方法,以下是具体实现:
使用lapply()的实现方案
利用seq_along()生成列表的索引序列,遍历每个索引位置,对两个列表对应子列表的元素进行拼接:
List1 <- list(c("Ford", "Toyota"), c("Chevy", "Dodge", "Jeep")) List_2 <- list(c("Fusion", "Corolla"), c("Silverado", "Ram", "Renegade")) NewList <- lapply(seq_along(List1), function(i) { # paste默认用空格拼接对应位置的元素 paste(List1[[i]], List_2[[i]]) })
执行后NewList的结构与你期望的完全一致:
# 输出结果 # [[1]] # [1] "Ford Fusion" "Toyota Corolla" # # [[2]] # [1] "Chevy Silverado" "Dodge Ram" "Jeep Renegade"
更简洁的Map()替代方案
Map()函数可以直接对多个列表的对应元素应用指定函数,代码更简洁:
NewList <- Map(paste, List1, List_2)
这个方法的效果和lapply()方案完全相同,本质是对mapply()的封装,更适合这种多列表对应元素操作的场景。
内容的提问来源于stack exchange,提问作者ZT_Geo
相关产品推荐
相关产品推荐

