Hi Luigi, It's easy: df1<-df[,!unlist(lapply(df,is.factor))]
_except_ when there is only one column left, as in your example. In that case, you will have to coerce the resulting vector back into a one column data frame. Jim On Sun, Sep 19, 2021 at 6:18 PM Luigi Marongiu <marongiu.lu...@gmail.com> wrote: > > Hello, > I woul dlike to remove factors from all the columns of a dataframe. > I can do it n a column at the time with > ``` > > df <- data.frame(region=factor(c('A', 'B', 'C', 'D', 'E')), > sales = c(13, 16, 22, 27, 34), country=factor(c('a', > 'b', 'c', 'd', 'e'))) > > new_df$region <- droplevels(new_df$region) > ``` > > What is the syntax to remove all factors at once (from all columns)? > For this does not work: > ``` > > str(df) > 'data.frame': 5 obs. of 3 variables: > $ region : Factor w/ 5 levels "A","B","C","D",..: 1 2 3 4 5 > $ sales : num 13 16 22 27 34 > $ country: Factor w/ 5 levels "a","b","c","d",..: 1 2 3 4 5 > > df = droplevels(df) > > str(df) > 'data.frame': 5 obs. of 3 variables: > $ region : Factor w/ 5 levels "A","B","C","D",..: 1 2 3 4 5 > $ sales : num 13 16 22 27 34 > $ country: Factor w/ 5 levels "a","b","c","d",..: 1 2 3 4 5 > ``` > Thank you > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.