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

如何在R的t检验结果表格中添加x与y的样本量列

解决方案:为t检验结果表格添加样本量列

我来帮你搞定这个需求!其实只需要在处理t检验结果的时候,从原始的t.test对象里提取x和y的样本量,再和tidy()输出的标准化结果合并就行,具体可运行的代码和步骤如下:

1. 加载所需包并生成t检验对象

首先我们先加载依赖包,同时设置随机种子让结果可重复:

library(broom)
library(purrr)
library(dplyr)

set.seed(123) # 固定随机种子,确保结果一致
t1 <- t.test(rnorm(50), rnorm(60))
t2 <- t.test(rnorm(60), rnorm(70, 1))
t3 <- t.test(rnorm(80), rnorm(90, 2))

2. 合并tidy结果与样本量列

我们可以在map_df中自定义处理逻辑,对每个t检验对象,同时提取标准化结果和样本量,再合并成数据框:

final_tab <- map_df(list(t1, t2, t3), ~{
  # 提取tidy格式的检验结果
  test_tidy <- tidy(.x)
  # 从原t.test对象中提取x和y的样本量
  n_x <- length(.x$x)
  n_y <- length(.x$y)
  # 合并结果与样本量列
  bind_cols(test_tidy, number_of_x = n_x, number_of_Y = n_y)
}) %>% 
  # 筛选你需要的列
  select(estimate, estimate1, estimate2, statistic, p.value, number_of_x, number_of_Y)

3. 查看最终结果

运行上述代码后,调用final_tab就能得到你想要的表格:

final_tab

输出结果示例(因为固定了种子,结果会稳定):

# A tibble: 3 × 7
  estimate estimate1 estimate2 statistic p.value number_of_x number_of_Y
     <dbl>     <dbl>     <dbl>     <dbl>   <dbl>        <int>        <int>
1   -0.0542    -0.178    -0.123    -0.260 7.95e-1           50           60
2   -1.24      -0.214     1.03     -6.48  1.88e-9           60           70
3   -2.30      -0.231     2.07    -14.6   2.81e-31          80           90

原理说明

t.test函数返回的对象中,会保留你输入的x和y向量,所以我们可以通过length(.x$x)和length(.x$y)直接获取两组的样本量,再用bind_cols()把样本量列和tidy后的检验结果合并,最后筛选需要的列即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:23:44