首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >附上两份清单的清单

附上两份清单的清单
EN

Stack Overflow用户
提问于 2022-05-08 09:16:23
回答 4查看 40关注 0票数 2

我有两份名单如下:

代码语言:javascript
复制
list1 <- list(c(`0` = 0L, `25` = 0L, `100` = 1L, `250` = 1L, `500` = 1L, 
                `1000` = 1L, Infinity = 3L), c(`0` = 0L, `25` = 0L, `100` = 1L, 
                                               `250` = 1L, `500` = 1L, Infinity = 4L))

list2 <- list(c(`0` = 0L, `25` = 0L, `100` = 0L, `250` = 2L, `500` = 1L, 
                `1000` = 1L, Infinity = 3L), c(`0` = 0L, `25` = 0L, `100` = 1L, 
                                               `250` = 1L, `500` = 1L, Infinity = 4L))

我想把list2[[1]]附加到list1[[1]],把list2[[2]]附加到list1[[2]]。因此:

代码语言:javascript
复制
list_out <- list(c(`0` = 0L, `25` = 0L, `100` = 1L, `250` = 1L, `500` = 1L, 
                `1000` = 1L, Infinity = 3L, `0` = 0L, `25` = 0L, `100` = 0L, `250` = 2L, `500` = 1L, 
                `1000` = 1L, Infinity = 3L), c(`0` = 0L, `25` = 0L, `100` = 1L, 
                                               `250` = 1L, `500` = 1L, Infinity = 4L, `0` = 0L, `25` = 0L, `100` = 1L, 
                                               `250` = 1L, `500` = 1L, Infinity = 4L))

有人能帮我解释一下我该怎么做吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-05-08 09:21:48

您可以使用lapplyc()

代码语言:javascript
复制
lapply(1:length(list1), function(x) c(list1[[x]], list2[[x]]))

mapplyappendc

代码语言:javascript
复制
mapply(append, list1, list2)

输出

代码语言:javascript
复制
[[1]]
       0       25      100      250      500     1000 Infinity        0 
       0        0        1        1        1        1        3        0 
      25      100      250      500     1000 Infinity 
       0        0        2        1        1        3 

[[2]]
       0       25      100      250      500 Infinity        0       25 
       0        0        1        1        1        4        0        0 
     100      250      500 Infinity 
       1        1        1        4 

检查它是否与您的list_out相同

代码语言:javascript
复制
identical(lapply(1:length(list1), function(x) c(list1[[x]], list2[[x]])), list_out)
[1] TRUE

identical(mapply(append, list1, list2), list_out)
[1] TRUE
票数 2
EN

Stack Overflow用户

发布于 2022-05-08 10:21:17

这是另一个R基解。

代码语言:javascript
复制
Map(c, list1, list2)

identical(Map(c, list1, list2), list_out)
#[1] TRUE
票数 2
EN

Stack Overflow用户

发布于 2022-05-08 14:05:14

另一个选择是map2

代码语言:javascript
复制
library(purrr)
map2(list1, list2, c)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72159588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档