r从数据框中的列表中删除元素

时间:2019-03-14 19:50:52

标签: r list dataframe

我有一个包含列表的数据框

Id    lists
1     5,2,3
2     2,3,4

我想从列表中删除与另一列相同的元素

Id    lists
1     5,2,3
2     3,4

1 个答案:

答案 0 :(得分:2)

这里是tidyverse的一个选项。使用map2中的purrr,用'Id'遍历相应的list列'lists',并用setdiff获取在'Id'中找不到的元素

library(tidyverse)
df1 %>%
    mutate(lists = map2(lists, Id, setdiff))
#   Id   lists
#1  1 5, 2, 3
#2  2    3, 4

数据

df1 <- structure(list(Id = 1:2, lists = list(c(5, 2, 3), c(2, 3, 4))), 
  row.names = c(NA, 
 -2L), class = "data.frame")