是否有可能dpyr select像删除单个列一样删除数据框中的所有列表列?
df <- tibble(
a = LETTERS[1:5],
b = 1:5,
c = list('bob', 'cratchit', 'rules!','and', 'tiny tim too"')
)
df %>%
select_if(-is.list)
Error in -is.list : invalid argument to unary operator
Run Code Online (Sandbox Code Playgroud)
这似乎是一个可行的解决方法,但想知道是否可以使用完成select_if。
df %>%
select(-which(map(df,class) == 'list'))
Run Code Online (Sandbox Code Playgroud)
使用Negate
df %>%
select_if(Negate(is.list))
# A tibble: 5 x 2
a b
<chr> <int>
1 A 1
2 B 2
3 C 3
4 D 4
5 E 5
Run Code Online (Sandbox Code Playgroud)
还有一个purrr::negate会给出相同的结果。