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

如何使用dplyr将数据框指定列格式转换为数值型

使用dplyr批量将指定列转为数值型

针对批量转换多列为数值型的需求,用dplyr可以简洁实现,以下是两种常用方案:

方案一:dplyr 1.0.0+ 推荐写法(使用across())

新版dplyr推荐用across()对多列执行统一操作,结合你定义的列名向量,代码如下:

library(dplyr)

cols.to.format <- c("quantity", "li_hep", "edta")

# 批量转换指定列
df <- df %>%
  mutate(across(all_of(cols.to.format), as.numeric))
  • all_of()用来精准匹配你指定的列名,若要忽略不存在的列,可替换为any_of()
  • as.numeric就是执行转换的核心函数

方案二:旧版dplyr兼容写法(使用mutate_at())

如果你的dplyr版本低于1.0.0,可用mutate_at()实现:

df <- df %>%
  mutate_at(vars(cols.to.format), as.numeric)

验证转换结果

执行后用str(df)查看数据结构,能看到指定列已转为数值型:

str(df)
# 输出示例:
# tibble [5 × 5] (S3: tbl_df/tbl/data.frame)
#  $ source      : chr [1:5] "Biobank" "Biobank" "Biobank" "Biobank" ...
#  $ sample_type : chr [1:5] "EDTA Plasma Large Aliquot" "EDTA Plasma Large Aliquot" ...
#  $ quantity    : num [1:5] 10 3 8 0 7
#  $ li_hep      : num [1:5] 0 0 0 0 0
#  $ edta        : num [1:5] 2 2 0 0 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:12:14