首页 > 解决方案 > Lapply 使用另一个列表作为标准过滤一个列表的值

问题描述

假设您有一个名为 list1 的数据框列表和另一个名为 list2 的数据框列表。

两个列表都有关于同一个人的数据,并且您有一个唯一的 ID 来识别他们。我想过滤第二个列表以仅包含有关第一个列表中的个人的数据。

我在想这些方面的东西:

list1 %>% lapply(distinct, ID) -> id1
list2 %>% lapply(filter, ID %in% id1) -> list2

所以,我想在两个列表中逐个元素地迭代匹配过滤器函数,比如,

filter(list2[[1]], ID %in% id1[[1]])

等等。

但是,这种方法行不通。我相信这是因为标准是一个列表。使用以下 for 循环,我能够获得所需的结果:

for (i in seq(list2)) {
  list2[[i]] %>%
      filter(ID %in% id1[[i]][,1]) -> list2[[i]]

有没有办法使用 lapply() 来做我描述的事情?

标签: r

解决方案


推荐阅读