本来想着小区内多株是可以分析的,发现要用平均值代替,数据就已经按列拍好了,怎么办?
用R语言知道R语言可以做,可是不知道怎么做,刚才看到了如何做,就迫不及待记录。
- ```
- > dat <- data.frame(cul=rep(rep(1:5,each=3),4),block=rep(1:4,each=15),
- + plot=rep(1:3,20),y=rnorm(60,30,10))
- # 生成数据
- > head(dat)
- cul block plot y
- 1 1 1 1 29.92395
- 2 1 1 2 47.77084
- 3 1 1 3 18.61392
- 4 2 1 1 43.67827
- 5 2 1 2 43.29565
- 6 2 1 3 33.36473
- # 错误的模型,这里残差是错误的
- > # wrong model, the df of residuals is wrong!
- > for (i in 1:3) dat[,i] <- as.factor(dat[,i])
- > str(dat)
- 'data.frame': 60 obs. of 4 variables:
- $ cul : Factor w/ 5 levels "1","2","3","4",..: 1 1 1 2 2 2 3 3 3 4 ...
- $ block: Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ...
- $ plot : Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3 1 ...
- $ y : num 29.9 47.8 18.6 43.7 43.3 ...
- > mod <- aov(y ~ cul + block,data=dat)
- > summary(mod)
- Df Sum Sq Mean Sq F value Pr(>F)
- cul 4 335 83.80 1.054 0.389
- block 3 30 10.16 0.128 0.943
- Residuals 52 4134 79.50
- #查看数据
- > head(dat)
- cul block plot y
- 1 1 1 1 29.92395
- 2 1 1 2 47.77084
- 3 1 1 3 18.61392
- 4 2 1 1 43.67827
- 5 2 1 2 43.29565
- 6 2 1 3 33.36473
- > library(reshape2)
- > dd <- dcast(dat, cul+block~plot)
- Using y as value column: use value.var to override.
- # 转换后的数据
- > head(dd)
- cul block 1 2 3
- 1 1 1 29.92395 47.77084 18.61392
- 2 1 2 26.82941 28.22210 28.30006
- 3 1 3 25.04417 33.55550 18.65392
- 4 1 4 29.47895 28.04065 23.50930
- 5 2 1 43.67827 43.29565 33.36473
- 6 2 2 16.27698 28.26213 38.50232
- # 求3个观测值的平均数
- > dd$mean <- (dd[b]问题描述[/b][align=left]本来想着小区内多株是可以分析的,发现要用平均值代替,数据就已经按列拍好了,怎么办?[/align][b]用R语言[/b][align=left]知道R语言可以做,可是不知道怎么做,刚才看到了如何做,就迫不及待记录。[/align]1` +dd[b]问题描述[/b][align=left]本来想着小区内多株是可以分析的,发现要用平均值代替,数据就已经按列拍好了,怎么办?[/align][b]用R语言[/b][align=left]知道R语言可以做,可是不知道怎么做,刚才看到了如何做,就迫不及待记录。[/align]2` + dd[b]问题描述[/b][align=left]本来想着小区内多株是可以分析的,发现要用平均值代替,数据就已经按列拍好了,怎么办?[/align][b]用R语言[/b][align=left]知道R语言可以做,可是不知道怎么做,刚才看到了如何做,就迫不及待记录。[/align]3`)/3
- > dd <- dd[,-(3:5)]
- > head(dd)
- cul block mean
- 1 1 1 32.10291
- 2 1 2 27.78386
- 3 1 3 25.75120
- 4 1 4 27.00964
- 5 2 1 40.11288
- 6 2 2 27.68048
- # 正确的模型
- > mod1 <- aov(mean ~ cul + block,data=dd)
- > summary(mod1)
- Df Sum Sq Mean Sq F value Pr(>F)
- cul 4 111.7 27.93 0.692 0.612
- block 3 10.2 3.39 0.084 0.968
- Residuals 12 484.4 40.37
- ```


雷达卡



京公网安备 11010802022788号







