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

R语言如何从其他列提取值填充Distance、Metric列的NULL/NA空值

# 安装依赖(首次使用执行)
install.packages("tidyverse")

# 加载依赖包
library(tidyverse)

# 构造示例数据,实际使用时替换为你的数据集
df <- tibble(
  Case = c("*jsalidjsalj;  10 KM daskdsadok; 73  saujdhuj",
           "*dskfnsldfn sadjidisaj 500 - 550 M wqldl"),
  Distance = c(NA_real_, NA_real_),
  Metric = c(NA_character_, NA_character_)
)

# 核心处理代码
df_processed <- df %>%
  mutate(
    # 正则匹配提取数值和单位,适配单值、区间两种场景
    extract_res = str_match(Case, "(\\d+)\\s*(?:-\\s*\\d+)?\\s*(KM|M)"),
    # 仅填充原列为NA的位置,不覆盖已有数据
    Distance = coalesce(Distance, as.numeric(extract_res[,2])),
    Metric = coalesce(Metric, extract_res[,3])
  ) %>%
  # 删除中间辅助列
  select(-extract_res)
  • 正则规则可直接适配你给出的两类场景:单值加单位的格式会直接提取对应数值和单位,区间加单位的格式默认提取区间首个数值和对应单位
  • 如果需要适配更多单位,只需要修改正则中(KM|M)部分,比如需要支持中文单位可改为(KM|M|米|公里)
  • 若你的Case列存在多组距离数据,可把str_match替换为str_match_all自行指定取第几次匹配的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:54:01