R中使用dplyr语法将dataframe所有字符串列转换为factor的方法
实现方案
你可以用dplyr的跨列操作语法实现需求,根据你使用的dplyr版本,有两种可选写法:
- 如果你使用的是dplyr 1.0.0及以上版本,推荐使用
across()语法,这也是目前dplyr官方推荐的标准写法:
sim_df <- read.csv("test.csv") %>% mutate(across(where(is.character), as.factor))
代码逻辑说明:where(is.character)会筛选出所有字符类型的列,across()会批量对筛选出的列执行as.factor()转换,最终效果和stringsAsFactors=T完全一致。
- 如果你使用的是低于1.0.0的旧版dplyr,可以用
mutate_if语法实现同样效果:
sim_df <- read.csv("test.csv") %>% mutate_if(is.character, as.factor)
注意:你示例代码中写的
read.csv("text.csv")属于笔误,需要替换为你实际的文件名test.csv。
内容的提问来源于stack exchange,提问作者Eisen
相关产品推荐
相关产品推荐

