You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用mutate+across将字符列转因子未生效问题

错误原因

核心问题是dplyr的管道操作不会自动覆写原对象:你执行的带mutate(across(...))的管道语句,仅将转换后的临时结果打印到控制台,没有将结果保存回LR_df1变量。
控制台输出的tibble预览里SiteCode、S01UsualResidence显示为<fct>类型,只是临时运算结果的结构,你全局环境中存储的LR_df1从未被修改,后续调用LR_df1$SiteCode时,读取的仍是最初用read_excel导入的原始字符型列,自然不会是因子类型。
注:初始赋值语句里给LR_df1加双引号属于冗余写法,R虽可正常解析,但不符合常规编码习惯,直接写变量名赋值即可。

修正代码

将管道运算的返回结果重新赋值给LR_df1即可完成持久修改:

library(readxl)
library(dplyr)

LR_df1 <- read_excel("Correct file location.xlsx", sheet = "Correct sheet")

LR_df1 <- LR_df1 %>%
  as_tibble() %>%
  mutate(across(c(SiteCode, S01UsualResidence), as.factor))

运行完成后再执行summary(LR_df1$SiteCode),就会正常输出因子各水平的计数结果,证明类型转换生效。

内容的提问来源于stack exchange,提问作者donm79

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 20:03:22