Convert data.frame columns from factors to characters

前端 未结 18 1589
时光取名叫无心
时光取名叫无心 2020-11-22 04:43

I have a data frame. Let\'s call him bob:

> head(bob)
                 phenotype                         exclusion
GSM399350 3- 4- 8- 25- 44+         


        
18条回答
  •  说谎
    说谎 (楼主)
    2020-11-22 05:03

    To replace only factors:

    i <- sapply(bob, is.factor)
    bob[i] <- lapply(bob[i], as.character)
    

    In package dplyr in version 0.5.0 new function mutate_if was introduced:

    library(dplyr)
    bob %>% mutate_if(is.factor, as.character) -> bob
    

    ...and in version 1.0.0 was replaced by across:

    library(dplyr)
    bob %>% mutate(across(where(is.factor), as.character)) -> bob
    

    Package purrr from RStudio gives another alternative:

    library(purrr)
    bob %>% modify_if(is.factor, as.character) -> bob
    

提交回复
热议问题