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

如何用dplyr为数据框新增summary列标记显著性?

使用dplyr为R数据框新增summary列的实现方法

问题说明

现有一个包含7列的R数据框(示例结构如下),需要新增名为summary的列:当p_onset、p_dc14、p_tfc6或p_tms30任意一列的数值小于0.05时,该列取值为'significant',非满足条件的行可设为NA或自定义标识。

示例数据框

df <- structure(list(Suggested.Symbol = c("CCT4", "DHRS2", "PMS2", "FARSB", "RPL31", "ASNS"), 
                     p = c(0.0228515901406638, 0.0334943667503674, 0.0380265628484489, 0.0479201571393373, 0.052163360517758, 0.0536304612182764), 
                     p.10 = c(0.000166442958356447, 0.000401441243282832, 0.000537687151637518, 0.000915758490675558, 0.00111333295283486, 0.00118675736050892), 
                     p_onset = c(0.9378, 0.5983, 7.674e-10, 0.09781, 0.5495, 0.7841), 
                     p_dc14 = c(0.3975, 0.3707, 6.117e-17, 0.2975, 0.4443, 0.7661), 
                     p_tfc6 = c(0.2078, 0.896, 7.388e-19, 0.5896, 0.3043, 0.6696), 
                     p_tms30 = c(0.5724, 0.3409, 4.594e-13, 0.2403, 0.1357, 0.3422)), 
                row.names = c(NA, 6L), class = "data.frame")

dplyr实现方法

代码示例

library(dplyr)

df <- df %>%
  mutate(
    summary = case_when(
      p_onset < 0.05 | p_dc14 < 0.05 | p_tfc6 < 0.05 | p_tms30 < 0.05 ~ "significant",
      TRUE ~ NA_character_  # 非显著情况可替换为"not significant"等自定义文本
    )
  )

代码解释

  • mutate():dplyr核心函数之一,用于新增或修改数据框列,这里用来创建summary列。
  • case_when():实现多条件分支判断,通过逻辑运算符|(或)判断四个目标列是否有任意一列满足p值<0.05,满足则赋值为"significant";TRUE ~ NA_character_表示所有不满足条件的行,将summary设为字符型NA,可根据需求替换为其他标识文本。

结果验证

运行代码后查看数据框,只有PMS2对应的行summary列取值为"significant",其余行均为NA,完全匹配示例数据的实际情况。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:24:13