2013-03-20 78 views
-1

我需要一些帮助做一个t检验。我知道如何做一个单一的数据集,但我需要帮助做2样本t检验。我称DATA1一个数据集:在R编程中做T.test

+3

请让您的情况具有可重复性,即向我们提供模拟您的情况所需的数据和代码。有关如何执行此操作的更多提示,请参阅http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example。 – 2013-03-20 11:51:50

+0

@PaulHiemstra你对复制/粘贴有何评论?我失去了链接到这个问题的次数! – 2013-03-20 11:52:33

+2

我在MacOS仪表板中将它作为注释。但是应该有一个Stack应用程序,允许您保存许多标准注释。这可能会更好。 – 2013-03-20 11:58:06

回答

6

数据:

data1 <- data.frame(n = 15, mean = 14, sd = 8) 
data2 <- data.frame(n = c(17, 5, 8), mean = c(19, 17, 11), sd = c(7, 6, 9)) 

t检验功能(基于观察,平均值和标准偏差的编号):

T.test <- function(n, mean, sd) { 
    s <- sum((n - 1) * sd^2)/(sum(n) - 2) # weighted variance 
    t <- sqrt(prod(n)/sum(n)) * (diff(mean)/sqrt(s)) # t statistic 
    df <- sum(n) - 2 # degrees of freedom 
    p <- (1 - pt(abs(t), df)) * 2 # p value 
    c(t = t, p = p) 
} 

应用函数的data2所有行:

apply(data2, 1, function(x) T.test(c(x[1], data1$n), 
            c(x[2], data1$mean), 
            c(x[3], data1$sd))) 

输出显示叔和p值用于LL行中data2

  [,1]  [,2]  [,3] 
t -1.98618371 -0.8215838 0.8730255 
p 0.05621594 0.4220631 0.3925227 
1

还有一个在R A内置函数

?t.test 

说明 执行对数据的矢量之一,两样本t检验。

#just an easy example 
a = c(12.9, 13.5, 12.8, 15.6, 17.2, 19.2, 12.6, 15.3, 14.4, 11.3) 
b = c(12.7, 13.6, 12.0, 15.2, 16.8, 20.0, 12.0, 15.9, 16.0, 11.1) 

t.test(a,b, paired=TRUE) 

Paired t-test 

data: a and b 
t = -0.2133, df = 9, p-value = 0.8358 
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval: 
-0.5802549 0.4802549 
sample estimates: 
mean of the differences 
-0.05 
+0

内置的't.test'函数需要原始数据,但OP有平均值,SD和n值。 – 2013-03-20 14:23:25

+0

@SvenHohenstein感谢您的精确度,我的错误 – 2013-03-20 14:32:10

+0

可悲的是,这不适用于我,因为我比较具有不同n值的值 – 2013-03-21 23:14:37