如何将数值列转换为factor类型并分配对应标签且不修改原始数据
实现方案
基础R写法
假设原始数据框为df,待转换的数值列名为fuel_type_num,你可以直接生成新的因子列/新数据框,全程不修改原始数据:
- 生成带新因子列的完整新数据框:
df_new <- transform(df, fuel_type = factor( fuel_type_num, levels = c(1, 2, 3), labels = c("Petrol", "Hybrid", "Diesel") ) )
- 仅单独生成转换后的因子向量:
fuel_factor <- factor( df$fuel_type_num, levels = c(1, 2, 3), labels = c("Petrol", "Hybrid", "Diesel") )
tidyverse(dplyr)写法
如果你习惯用tidyverse生态的工具,可以用mutate()生成新列:
library(dplyr) df_new <- df %>% mutate( fuel_type = factor( fuel_type_num, levels = c(1, 2, 3), labels = c("Petrol", "Hybrid", "Diesel") ) )
你可以运行
head(df)验证,原始数据框的数值列不会发生任何改动。
内容的提问来源于stack exchange,提问作者ahad lone
相关产品推荐
相关产品推荐

