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

使用dplyr按行计算几何均值(geomean)的技术问询

按行计算数据框指定列的几何均值

需要基于数据框中的twodct_ATP5B、twodct_EIF4A2、twodct_GAPDH三列,逐行计算几何均值。以下是示例数据:

data <- structure(list(fs_id = structure(1:8, levels = c("CON1", "NC", 
"water", "SCR1", "FAN1_1", "CON2", "SCR2", "FAN1_2"), class = "factor"), 
    twodct_ATP5B = c(1.06960527260684, 0.00241424406360917, NA, 
    0.953100847649869, 0.404512354245938, 0.934924336678708, 
    1.32283164360403, 0.194667767059346), twodct_EIF4A2 = c(1.07741209897215, 
    NA, NA, 1.01873805854745, 0.467988708062081, 0.928149963188649, 
    1.31762036152893, 0.33377442013251), twodct_GAPDH = c(1.04388739915294, 
    0.000156497290441042, NA, 0.972431569982792, 0.547030142788418, 
    0.957957726869246, 0.942311505534324, 0.337842927620691)), row.names = c(NA, 
-8L), class = c("tbl_df", "tbl", "data.frame"))

数据预览:

> data
# A tibble: 8 × 4
  fs_id  twodct_ATP5B twodct_EIF4A2 twodct_GAPDH
  <fct>         <dbl>         <dbl>        <dbl>
1 CON1        1.07            1.08      1.04    
2 NC          0.00241        NA         0.000156
3 water      NA              NA        NA       
4 SCR1        0.953           1.02      0.972   
5 FAN1_1      0.405           0.468     0.547   
6 CON2        0.935           0.928     0.958   
7 SCR2        1.32            1.32      0.942   
8 FAN1_2      0.195           0.334     0.338

尝试的代码无法运行,原因是在rowwise()环境下使用select()返回的是数据框,log()无法直接处理数据框结构。以下是两种可行的解决方案:

方法一:使用c_across()逐行提取列值

c_across()在rowwise()环境中可以将指定列转换为向量,配合log()和mean()完成计算,同时加入na.rm = TRUE处理缺失值:

data %>%
  rowwise() %>%
  mutate(geomean = exp(mean(log(c_across(c(twodct_ATP5B, twodct_EIF4A2, twodct_GAPDH))), na.rm = TRUE))) %>%
  ungroup()

方法二:使用rowMeans()高效计算

无需rowwise(),直接用rowMeans()按行计算对数后的均值,再取指数,这种方法性能更优:

data %>%
  mutate(geomean = exp(rowMeans(log(select(., twodct_ATP5B, twodct_EIF4A2, twodct_GAPDH)), na.rm = TRUE)))

注意事项

  • 必须确保计算列中的值均为正数,否则log()会报错;
  • na.rm = TRUE会忽略缺失值,若需要保留NA(即只要行中有NA就返回NA),可移除该参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:03:36