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

在R语言中拆分分数格式数据为两列的实现方法

如何在R语言中将分数形式的血压值拆分为上下限两列?

没问题,我来给你分享几个在R里实现这个需求的实用方法,都是日常处理这类字符串拆分常用的手段:

首先先构造你的示例数据框,方便后续演示:

df <- data.frame(B.P = c("127/80", "130/98"), stringsAsFactors = FALSE)

方法一:使用tidyverse套件的separate()函数(最简洁)

这是处理这类列拆分需求最推荐的方式,需要先加载tidyr包(属于tidyverse生态,如果你还没安装可以先跑install.packages("tidyverse")):

library(tidyr)
df_split <- separate(df, col = B.P, into = c("upper", "lower"), sep = "/", remove = FALSE)

参数说明:

  • col:指定要拆分的目标列(这里是B.P)
  • into:定义拆分后生成的新列名称,用向量传入
  • sep:设置拆分的分隔符(这里是/)
  • remove = FALSE:保留原来的B.P列,如果不需要原列可以去掉这个参数

方法二:基础R原生实现(无需额外安装包)

如果不想加载第三方包,用基础R的函数也能轻松搞定:

# 按"/"拆分每个字符串,得到列表后转成矩阵
split_vals <- do.call(rbind, strsplit(df$B.P, "/"))
# 合并原数据框和拆分后的数值列(转成数值类型避免字符型)
df_split <- cbind(df, upper = as.numeric(split_vals[,1]), lower = as.numeric(split_vals[,2]))

最后查看拆分后的结果,就和你期望的格式完全一致了:

print(df_split)
#       B.P upper lower
# 1 127/80   127    80
# 2 130/98   130    98

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:14:22