我正在研究受试者的生化数据,按性别分析结果 . 我有19个生化测试来分析每种性别,对于两种药物中的每一种(血液学和解剖学测试后来出现) .
出于结果的可重复性和防止转录错误的原因,我试图将每个测试总结为一个表 . 包含在表输出中,我需要一个Dunnett事后比较p值的列 . 因为Dunnett测试与对照结果相比,对照和3个药物水平我只得到3个p值 . 但是,我有4个均值和sd值 .
使用ddply获取均值和sd结果(限制有效数字的数量,我得到一个如下所示的数据集:
Sex<- c(rep("F",4), rep("M",4))
Druglevel <- c(rep(0:3,2))
Sample <- c(rep(10,8))
Mean <- c(0.44, 0.50, 0.46, 0.49, 0.48, 0.55, 0.47, 0.57)
sd <- c(0.07, 0.07, 0.09, 0.12, 0.18, 0.19, 0.13, 0.41)
Drug1Biochem1 <- data.frame(Sex, Druglevel, Sample, Mean, sd)
我在包 multcomp
中使用了 glht
来对我通过正常 aov
构造的 aov
对象执行Dunnett测试 . 我从 glht
摘要中提取了p值(我将这些值舍入到三位小数) . 男性和女性分析使用单独的 ANOVA
运行,因此每个性别都有一组输出 . 女性的结果是:
femaleR <- c(0.371, 0.973, 0.490)
而男性的结果是:
maleR <- c(0.862, 0.999, 0.738)
如何将p值的列附加到我的原始数据框(Drug1Biochem1),以便femaleR和maleR都在最后一列中,该列的第1行和第5行为空(即对照没有p值) ?
我希望将结果组合输出到html,它可以插入到Word文档中,因此不会发生转录错误 . 我已经设置了一个种子值,以便程序的结果是可重现的(当我最终停止调试时) .
总之,我想要一个具有以下格式的数据框(或表,或者我可以输出到html的任何内容):
Sex Druglevel Sample Mean sd p-value
F 0 10 0.44 0.07
F 1 10 0.50 0.07 0.371
F 2 10 0.46 0.09 0.973
F 3 10 0.49 0.12 0.480
M 0 10 0.48 0.18
M 1 10 0.55 0.19 0.862
M 2 10 0.47 0.13 0.999
M 3 10 0.57 0.41 0.738
对于每个测试,我希望重现这个确切的表 . 每个性别总会有4个组,并且控件永远不会有p值,这将始终在第1行(F)和第5行(M)中进行汇总 .
1 回答
你可以试试
merge