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

R语言使用dplyr计算每行匹配指定模式列的中位数

你可以结合dplyr的行运算函数和列选择规则实现需求,具体实现代码如下:

1. 加载依赖包

library(dplyr)

2. 按行计算目标列中位数

# 假设你的数据集存储在变量df中
df_result <- df %>%
  # 开启按行计算模式
  rowwise() %>%
  mutate(
    # 自定义生成的中位数列名,可自行修改
    P_d_median = median(
      # 选中所有列名以P开头、d结尾的列,合并为向量传入中位数计算函数
      c_across(matches("^P.*d$")),
      # 若数据无缺失值可删除该行参数
      na.rm = TRUE
    )
  ) %>%
  # 取消行分组模式,避免后续运算出现预期外的按行逻辑
  ungroup()

参数说明

  • matches("^P.*d$"):用正则表达式匹配目标列,^P规定列名首字符为P,d$规定列名尾字符为d,中间.*匹配任意长度的任意字符
  • 如果你想要先验证匹配的列是否符合预期,可以先执行以下代码输出选中的列名:
    names(select(df, matches("^P.*d$")))
    
    对应你的示例数据集,输出结果应为"P16401d" "P7Z958d",符合筛选要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:18:02