如何在t检验结果数据表首列添加数据框名称?
在t检验结果数据表首列添加数据框名称的方法
这里有几种简单高效的方法可以帮你实现需求:
方法1:利用命名列表 + map_df的.id参数(推荐)
这是最简洁的方式,直接在合并结果时生成名称列:
# 先生成你的t检验对象 t1 <- t.test(rnorm(100), rnorm(100)) t2 <- t.test(rnorm(100), rnorm(100, 1)) t3 <- t.test(rnorm(100), rnorm(100, 2)) library(broom) library(purrr) # 创建带有名称的列表(键就是你想要的t1/t2/t3) t_test_list <- list(t1 = t1, t2 = t2, t3 = t3) # 使用.map_df的.id参数指定新列名,自动提取列表名称 tab <- map_df(t_test_list, tidy, .id = "test_id")
这样处理后,tab的第一列就是test_id,对应的值正好是t1、t2、t3,完全符合你的要求。
方法2:事后为已生成的表格添加列
如果已经用原代码生成了tab,可以通过以下方式补加首列:
方式A:基础R的cbind
# 直接在表格前添加一列 tab <- cbind(test_id = c("t1", "t2", "t3"), tab)
方式B:用dplyr的mutate(更灵活)
如果你已经在使用tidyverse工具,推荐这种方式,可以精准控制列的位置:
library(dplyr) # .before = 1 表示把新列放在第一位置 tab <- tab %>% mutate(test_id = c("t1", "t2", "t3"), .before = 1)
处理后的结果示例
最终的表格首列会包含你需要的名称,大致如下:
test_id estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high 1 t1 0.078897 -0.008136 -0.08703 0.5360 5.926e-01 193.415 -0.21143 0.36922 2 t2 -0.84980 0.132837 0.98264 -6.1691 3.913e-09 194.256 -1.12148 -0.57812 3 t3 -1.95877 -0.039049 1.91972 -13.2702 3.619e-29 197.996 -2.24985 -1.66769
内容的提问来源于stack exchange,提问作者TobKel
相关产品推荐
相关产品推荐

