0

In my project, I want to extract all the columns except numeric from my R data frame, as this question I used the same method and just put a not gate into is.numeric() R function but it is not working

This gives all the numaric data,

x<-iris %>% dplyr::select(where(is.numeric))

But this does not work as expected,

x<-iris %>% dplyr::select(where(!is.numeric))

Note: Finally the output data frame should only contain the species column in the iris dataset

INDRAJITH EKANAYAKE
  • 3,894
  • 11
  • 41
  • 63

1 Answers1

1

purrr package from tidyverse serves exactly what you want by purrr::keep and purrr::discard

library(purrr)

x <- iris %>% keep(is.numeric)

by these piece of code, you set a logical test in keep function and only the columns which passed the test stays.

to reverse that operation and achieve to your wish, you can use discard from purrr also;

x <- iris %>% discard(is.numeric)

you can think discard as keep but with !is.numeric

or alternatively by dplyr

x <- iris %>% select_if(~!is.numeric(.))
Samet Sökel
  • 2,515
  • 6
  • 21