0

有没有办法按组按 LSmean 值汇总数据框?在这个例子中,我有 3 个不同的研究,每一个都是 RCB 设计

dat = data.frame(expand.grid(study=1:3,
                             trt=1:3, 
                             block=1:4),
                 x=rnorm(36, mean=10, sd=2))

简单的意味着值将是:

library(dplyr)
group_by(dat, study, trt) %>% summarize(m = mean(x))

> Source: local data frame [9 x 3]
> Groups: study [?]

  study   trt         m
  (int) (int)     (dbl)
1     1     1 10.214407
2     1     2  9.196280
3     1     3 10.129706
4     2     1  8.964452
5     2     2  9.279254
6     2     3  8.584681
7     3     1 10.585306
8     3     2  9.218595
9     3     3  7.961692

第一项研究的 LSmeans 值为:

library(lsmeans)
fit1 = aov(x ~ factor(trt) + block, data = subset(dat, study==1))
(fit1.rg <- ref.grid(fit1))
lsmeans(fit1.rg, ~trt)

> lsmeans(fit1.rg, ~trt)
 trt   lsmean       SE df lower.CL upper.CL
   1 10.21441 1.257092  8 7.315547 13.11327
   2  9.19628 1.257092  8 6.297421 12.09514
   3 10.12971 1.257092  8 7.230847 13.02856 

我真的不知道是否可以一次完成所有操作,或者一个一个完成...提前致谢!

4

0 回答 0