2017-10-09 69 views
-1

首先,该数据集是否为t检验的整齐形式?如何在数据子集上运行t检验

https://i.stack.imgur.com/tMK6R.png

其次,我试图做一个两个样本t检验在治疗A和B的时间为3“结果1”的手段比较。我会如何去做这件事?

的样本数据:

df <- structure(list(code = c(100, 100, 100, 101, 101, 101, 102, 102, 
     102, 103, 103, 103), treatment = c("a", "a", "a", "b", "b", "b", 
     "a", "a", "a", "b", "b", "b"), sex = c("f", "f", "f", "m", "m", 
     "m", "f", "f", "f", "f", "f", "f"), time = c(1, 2, 3, 1, 2, 3, 
     1, 2, 3, 1, 2, 3), `outcome 1` = c(21, 23, 33, 44, 45, 47, 22, 
     34, 22, 55, 45, 56), `outcome 2` = c(21, 32, 33, 33, 44, 45, 
     22, 57, 98, 65, 42, 42), `outcome 3` = c(62, 84, 63, 51, 45, 
     74, 85, 34, 96, 86, 45, 47)), .Names = c("code", "treatment", 
     "sex", "time", "outcome 1", "outcome 2", "outcome 3"), 
     class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -12L)) 
+2

请将您的数据读入R并发布dput()的输出而不是数据的图像;也见[SO问题技巧](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – www

+0

'?t.test' - 在页面底部有示例。首先尝试,然后如果你仍然有问题发布你的尝试。 – Gregor

+0

@Gregor我试过了示例测试。问题在于数据的排列方式。我以为我整理的数据格式很整洁。我的结果变量之一是在三个不同的时间。我只想比较治疗a和治疗b在时间= 3的结果变量1的平均值。我不知道如何做到这一点。我可以重新安排我的数据,但是,我认为目前的格式是一个整齐的格式。你可以看看dput(),看看这个格式看起来是否整齐? – DiscoR

回答

0

首先你必须定义要测试的子集,那么你就可以运行t检验。您不必像我一样将变量存储在变量中,但它使得t检验输出更加清晰。

采用t检验问题

通常情况下,我建议帮助提供t.test,但由于这涉及到更复杂的子集,我已经包括了如何做到这一点的位置:?

var_a <- df$`outcome 1`[df$treatment=="a" & df$time==3] 
var_b <- df$`outcome 1`[df$treatment=="b" & df$time==3] 

t.test(var_a,var_b) 

输出:

Welch Two Sample t-test 

data: var_a and var_b 
t = -3.3773, df = 1.9245, p-value = 0.08182 
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval: 
-55.754265 7.754265 
sample estimates: 
mean of x mean of y 
    27.5  51.5 
+0

谢谢!这就是我想要做的! 虽然我不断收到此错误。 我已经将数据集导出到r中作为“tidy-data”,结果变量是我数据集中的权重。 012f t.test(df $'weight' [df $ treatment ==“a”&df $ time == 3],df $'weight' [df $ treatment ==“b”&df $ time == 3],data = tidy_data) df $ weight中的错误:'closure'类型的对象不是子集合 – DiscoR

+0

此错误是变量命名差异的结果。我将您的示例数据存储为“df”,而您看起来像将您的数据存储为“tidy_data”。因此,您可以在将“df”的所有引用更改为“tidy_data”之后尝试重新运行t检验代码,反之亦然。为了清楚起见,我刚刚编辑了问题中提供的示例数据以存储为“df”。 – www

+0

非常感谢您的帮助!我现在开始工作了!你认为我有我的数据的格式可能比较整洁吗? 我应该阅读哪些概念/主题来了解如何进行子集化,就像上面描述的那样? – DiscoR

相关问题