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

如何在R语言中移除数据框(df)所有单元格中的非数字字符?

R语言移除数据框所有单元格的非数字字符

基础Base R解决方案

先构造和你场景一致的示例数据框:

df <- data.frame(
  "Column A" = "dfd:13",
  "Column B" = "hhh:34",
  "Column C" = "dsd:15",
  "Column D" = "ffd:67",
  "Column E" = "hdf:89",
  "Column F" = "hhj:43",
  stringsAsFactors = FALSE
)

用lapply结合正则表达式批量处理所有列:

# 移除所有非数字字符并转为数值型
df_clean <- lapply(df, function(col) as.numeric(gsub("[^0-9]", "", col)))
# 转回数据框格式
df_clean <- as.data.frame(df_clean)

Tidyverse(dplyr)解决方案

如果习惯用tidyverse工具链,可用dplyr::across实现更简洁的批量处理:

library(dplyr)

df_clean <- df %>%
  mutate(across(everything(), ~ as.numeric(gsub("[^0-9]", "", .x))))

关键说明

  • 正则表达式[^0-9]会匹配所有非0-9的字符(包括字母、冒号等特殊符号),用空字符串替换后即可提取纯数字部分,无需指定具体要移除的前缀内容。
  • 加上as.numeric是为了把处理后的字符型数字转为数值类型,避免后续分析出现类型问题。

处理后的结果:

Column AColumn BColumn CColumn DColumn EColumn F
133415678943

内容的提问来源于stack exchange,提问作者grace.cutler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:22:21