楼主: dxystata
1746 11

[问答] 400论坛币求如何用R实现Stata 配对t检验输出结果 [推广有奖]

11
dxystata 发表于 2021-2-6 22:29:37

12
owenqi 在职认证  学生认证  发表于 2021-2-7 03:56:53
这个其实没什么复杂,主要是你从t.test里面提取相应的数据合成一个数据框就好了,另外,我同意楼上的看法,你那个one sample t test看起来是实际上才是paired t test的结果。
  1. library(dplyr)
  2. library(purrr)

  3. t_test_df <- function(dat){
  4.   
  5.   t_test <- apply(dat, 2, t.test)
  6.   
  7.   t_pair <- data.frame(obs = map_dbl(t_test, 2) + 1, # df + 1 is num of obs
  8.                      avg = map_dbl(t_test, 5),
  9.                      std_err = map_dbl(t_test, 7),
  10.                      std_dev = apply(dat, 2, sd),
  11.                      ci_low = map(t_test, 4) %>% map_dbl(., 1),
  12.                      ci_up = map(t_test, 4) %>% map_dbl(., 2)
  13.                      )
  14.   
  15.   t_pair_info <- data.frame(t = as.numeric(t_test$d[1]),
  16.                             df = as.numeric(t_test$d[2]),
  17.                             less = as.numeric(t_test$d[3])/2,
  18.                             two_sided = as.numeric(t_test$d[3]),
  19.                             greater = 1 - as.numeric(t_test$d[3])/2)
  20.   
  21.   # should be result on t_test$x1, t_test$x2
  22.   t_one <- t_pair[3,]
  23.   t_one_info <- t_pair_info
  24.   
  25. }
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-28 11:49