R中两列的T检验

问题描述

我正在尝试进行t检验,以查看两个df上两列的值是否在统计上不同。

我正在尝试运行一个比较两个df中的“ Duration”列的代码-“ Tokens”和“ Tokens.Single”。两个df在其相应的工期列中具有相同数量的值。

这是我正在尝试的代码

# T-test for duration.
t.test(Tokens$Duration ~ Tokens.Single$Duration,paired=FALSE,var.equal=TRUE)

这是我收到的错误消息:

Error in t.test.formula(Tokens$Duration ~ Tokens.Single$Duration,paired = FALSE,: 
  grouping factor must have exactly 2 levels

任何见识都受到赞赏!

解决方法

数据没有峰值,这很难说,但是您在t.test中使用的语法通常用于按因子变量进行响应。

根据您对数据的描述,最好使用以下语法:

y <- rnorm(50)
x <- rnorm(50)

t.test(x,y)

这将导致x和y数值向量的均值比较,或者在您的情况下:

t.test(Tokens$Duration,Tokens.Single$Duration,paired=FALSE,var.equal=TRUE)

出于完整性考虑,如果您有一个表示运行次数或实验编号的因子变量,则可以使用公式语法,例如

y <- rnorm(50)
z <- rep(c("A","B"),25)
t.test(y ~z)

屈服:

data:  y by z
t = -2.0418,df = 47.504,p-value = 0.04675
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.07859422 -0.00814587
sample estimates:
mean in group A mean in group B 
      0.1162672       0.6596372