不适用于使用另一个列表作为条件来过滤一个列表的值

时间:2019-04-24 19:50:38

标签: r

假设您有一个名为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()描述我所描述的内容?

0 个答案:

没有答案