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

R语言如何筛选含'ft'的单元格实现英尺转米且不改动其他单位数值

R语言批量匹配不同单位身高并统一转换为米的方案

核心需求实现:批量定位含ft的单元格

你可以直接使用R内置的grepl()函数做字符串模糊匹配,无需逐个指定单元格:

# 提取所有含'ft'的单元格的值
ft_values <- Data_original3$Height[grepl("ft", Data_original3$Height)]
# 获取含'ft'的单元格的行索引
ft_index <- which(grepl("ft", Data_original3$Height))

全量单位统一转换代码

针对你提供的数据集,下面是完整的将三种单位统一转换为米的代码,适配你已经把英尺格式转换为x.y数值的前置处理:

library(stringr)
library(dplyr)

Data_original3 <- Data_original3 %>%
  mutate(Height_m = case_when(
    # 处理厘米单位:数值除以100
    str_detect(Height, "_cm$") ~ as.numeric(str_remove(Height, "_cm")) / 100,
    # 处理米单位:直接提取数值
    str_detect(Height, "_m$") ~ as.numeric(str_remove(Height, "_m")),
    # 处理英尺格式(已经转为x.y的形式)
    str_detect(Height, "^\\d+\\.?\\d*$") ~ {
      parts <- str_split_fixed(Height, "\\.", 2)
      ft <- as.numeric(parts[,1])
      inch <- as.numeric(parts[,2])
      # 1英尺=12英寸,1英尺=0.3048米
      (ft + inch/12) * 0.3048
    },
    TRUE ~ NA_real_
  ))

注意事项

如果你不需要修正英尺转米的计算逻辑,直接沿用你自己的转换规则替换对应分支的代码即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:06:03