我正在使用reshape2包来塑造我的数据并将其用于t检验。对我来说,在单独的列中可视化数据更容易。我有三种治疗组合,其中“wat”嵌套在“spp”中,“ins”嵌套在水中。我的演示表包含3个响应变量,即“tyr”,“esc”和“esc_R”。我有兴趣看看ins如何影响响应 - > “spp”中的“tyr” - > B1,治疗“wat” - >高(只是一个例子)。
这是我的数据: demo.data
## Use orderBy function to sort data
library(doBy)
demo <- orderBy(~spp+wat+ins, data = demo)
## Create an unique data frame for a specific variable
df.bl.ins.1 <- demo[demo$spp == "Bl", c(1:3, 4)]
df.bl.ins.2 <- df.bl.ins.1[df.bl.ins.1$wat == "High", ]
然后我无法执行dcast功能。
df.bl.ins.tmp <- dcast(df.bl.ins.2, spp + wat ~ ins, value.var = "tyr")
我在以下主题中找到了有趣的信息
非常感谢这方面的任何帮助。
此外,如果您有其他建议在不操纵原始数据框(演示版)的情况下进行t检验,我会很高兴听到它。
提前致谢。
修改 对于“tyr”,这就是我所期待的。在以下格式中,我希望使用t检验比较“否”与“是”。
spp wat ins No Yes
Bl High No 0.3036 0.1987
Bl High No 0.2577 0.1112
Bl High No NA 0.199
Bl High No 0.3299 0.1886
Bl High No 0.3301 0.2332
答案 0 :(得分:1)
也许我不明白你想要做什么,但我认为你可以直接对你的数据进行线性回归。通过这种方式,您可以对模型的系数是否为零进行t检验。我认为这可能就足够了,也可以用来梳理每个自变量的影响。这是一个例子:
summary(lm(tyr~spp+wat+ins,data=read.table('http://pastebin.com/raw.php?i=sR2MvBBA')))
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.286386 0.016500 17.356 < 2e-16 ***
sppMan -0.159514 0.015811 -10.089 1.3e-11 ***
watLow -0.005501 0.015858 -0.347 0.730861
insYes -0.066741 0.015858 -4.209 0.000185 ***
这将使您只测试您在示例中显示的组:
t.test(tyr~ins,data=df[df$spp=='Bl' & df$wat=='High',])