thank you, they both work! On Sun, Sep 19, 2021 at 1:12 PM Jim Lemon <drjimle...@gmail.com> wrote: > > Hi Luigi, > Okay, so you mean: > I want to change all factors in a dataframe to character class, _not_ > remove them. > > factor2character<-function(x) if(is.factor(x)) return(as.character(x)) > else return(x) > df1<-lapply(df,factor2character) > > Jim > > On Sun, Sep 19, 2021 at 8:03 PM Luigi Marongiu <marongiu.lu...@gmail.com> > wrote: > > > > Thank you Jim, but I obtain: > > ``` > > > 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 > > > df1<-df[,!unlist(lapply(df,is.factor))] > > > str(df1) > > num [1:5] 13 16 22 27 34 > > > df1 > > [1] 13 16 22 27 34 > > ``` > > I was expecting > > ``` > > str(df) > > 'data.frame': 5 obs. of 3 variables: > > $ region : char "A","B","C","D",..: 1 2 3 4 5 > > $ sales : num 13 16 22 27 34 > > $ country: char "a","b","c","d",..: 1 2 3 4 5 > > ``` > > > > On Sun, Sep 19, 2021 at 11:37 AM Jim Lemon <drjimle...@gmail.com> wrote: > > > > > > 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. > > > > > > > > -- > > Best regards, > > Luigi
-- Best regards, Luigi ______________________________________________ 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.