繁体   English   中英

dcast函数(reshape2)的问题-三变量组合

[英]Issues with dcast function (reshape2) - three variable combination

我正在使用reshape2包来成形数据并将其用于t检验。 对我来说,更容易在单独的列中可视化数据。 我有三种处理组合,其中“ wat”嵌套在“ spp”内,“ ins”嵌套在水内。 我的演示表包含3个响应变量,即“ tyr”,“ esc”和“ esc_R”。 我想看看ins如何影响响​​应->“ spp”-> Bl中的“ tyr”,并通过“ wat”-> High处理(仅作为示例)。

这是我的数据: 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")

我在以下线程中找到了有趣的信息

  1. Dason的建议 -与ToothGrowth演示数据集非常有效。 不幸的是,当表具有多种处理方式(超过2种)时,解决方案并没有保持简单。 我同意Maiasaura的建议,即创建唯一变量是解决此问题的关键。 但是,我很难理解function(x)的作用或如何在表中使用它。

非常感谢这方面的任何帮助。

另外,如果您有其他建议可以在不处理原始数据帧(demo)的情况下进行t检验,那么我将很高兴听到它。

提前致谢。

编辑这是我期望的“轮胎”。 在以下格式中,我希望使用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

也许我不确定您要做什么,但是我认为您可以直接对数据运行线性回归。 这样,您可以对模型的系数是否为零进行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',])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM