我有一个data.frame:
df <- structure(list(id = 1:3, vars = list("a", c("a", "b", "c"), c("b",
"c"))), .Names = c("id", "vars"), row.names = c(NA, -3L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
列表列(每个都有一个字符向量):
> str(df)
'data.frame': 3 obs. of 2 variables:
$ id : int 1 2 3
$ vars:List of 3
..$ : chr "a"
..$ : chr "a" "b" "c"
..$ : chr "b" "c"
Run Code Online (Sandbox Code Playgroud)
我想根据过滤data.frame setdiff(vars,remove_this)
library(dplyr)
library(tidyr)
res <- df %>% mutate(vars = lapply(df$vars, setdiff, "a"))
Run Code Online (Sandbox Code Playgroud)
这让我这样:
> res
id vars
1 1 …Run Code Online (Sandbox Code Playgroud)