如何计算两个50个数据点向量之间的逐点t检验?

问题描述 投票:-1回答:1

我有一个包含3个变量和50个实例(ID,前置和后置)的数据框。有点像这样

ID<- c("1","2","3","4","5","6","7","8","9","10")
pre<- c("2.56802","2.6686","1.0145","0.2568","2.369","1.2365","0.6989","0.98745","1.09878","2.454658")
post<-c("3.3323","2.66989","1.565656","2.58989","5.96987","3.12145","1.23565","2.74741","2.54101","0.23568")

dfw1<-data.frame(ID,pre,post)

前后列是其他人口的平均值。我想在pre和post的第一个元素之间运行双尾t检验。(pre pre post)。我希望这循环遍历所有50行。我试过写循环,如下所示,

t<-0
for (i in 1:nrow(dfw$ID)) {
  t[i]<-t.test(dfw$pre,dfw$post,alternative = c("two.sided"), conf.level = 0.95)
  print(t)
}

它返回了一个错误我想提取上面的统计数据,如每行的df,p值,t值等等。如何在R中编写此代码?

r loops t-test
1个回答
1
投票

此代码显示您无法拒绝传统5%置信度下0差异的零假设:

ID<- c("1","2","3","4","5","6","7","8","9","10")
pre<- as.numeric(c("2.56802","2.6686","1.0145","0.2568","2.369","1.2365","0.6989","0.98745","1.09878","2.454658"))
post<-as.numeric(c("3.3323","2.66989","1.565656","2.58989","5.96987","3.12145","1.23565","2.74741","2.54101","0.23568"))
dfw1<-data.frame(ID,pre,post)
t.test(dfw1$pre,dfw1$post,alternative = c("two.sided"), conf.level = 0.95, paired=TRUE)

输出(给你df,t-stat和p值):

Paired t-test

data:  dfw1$pre and dfw1$post
t = -2.1608, df = 9, p-value = 0.05899
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2.18109315  0.04997355
sample estimates:
mean of the differences 
               -1.06556
© www.soinside.com 2019 - 2024. All rights reserved.