Если вам нужно использовать логическое индексирование:
df[,!purrr::map_lgl(df,is.list)] %>%
names()
[1] "CATEGORY" "BIBTEXKEY" "ADDRESS" "ANNOTE" "BOOKTITLE"
[6] "CHAPTER" "CROSSREF" "EDITION" "HOWPUBLISHED" "INSTITUTION"
[11] "JOURNAL" "KEY" "MONTH" "NOTE" "NUMBER"
[16] "ORGANIZATION" "PAGES" "PUBLISHER" "SCHOOL" "SERIES"
[21] "TITLE" "TYPE" "VOLUME" "YEAR" "ISSN"
[26] "DOI" "ISBN" "URL"
Вы также можете сделать df %>% select_if(Negate(is.list))
Также, как упомянуто @akrun,
Вы можете просто использовать discard
из purrr
:
purrr::discard(dat, is.list)
Или, как указывает @markus, мы можем использовать keep
и negate
:
keep(dat, negate(is.list))
В противном случае:
Мы можем удалить:
library(tidyverse)
df %>%
unnest(AUTHOR) %>%
select(-AUTHOR)