楼主: yijiaobani
1378 1

[程序分享] 农业数据中如何计算小区多株的平均值(R语言分享) [推广有奖]

  • 4关注
  • 5粉丝

已卖:69份资源

博士生

26%

还不是VIP/贵宾

-

威望
0
论坛币
191 个
通用积分
10.6711
学术水平
2 点
热心指数
8 点
信用等级
0 点
经验
5127 点
帖子
147
精华
0
在线时间
236 小时
注册时间
2015-5-18
最后登录
2020-10-28

楼主
yijiaobani 发表于 2017-3-27 19:01:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
问题描述

本来想着小区内多株是可以分析的,发现要用平均值代替,数据就已经按列拍好了,怎么办?

用R语言

知道R语言可以做,可是不知道怎么做,刚才看到了如何做,就迫不及待记录。

  1. ```
  2. > dat <- data.frame(cul=rep(rep(1:5,each=3),4),block=rep(1:4,each=15),
  3. +                   plot=rep(1:3,20),y=rnorm(60,30,10))
  4. # 生成数据
  5. > head(dat)
  6.   cul block plot        y
  7. 1   1     1    1 29.92395
  8. 2   1     1    2 47.77084
  9. 3   1     1    3 18.61392
  10. 4   2     1    1 43.67827
  11. 5   2     1    2 43.29565
  12. 6   2     1    3 33.36473

  13. # 错误的模型,这里残差是错误的
  14. > # wrong model, the df of residuals is wrong!
  15. > for (i in 1:3) dat[,i] <- as.factor(dat[,i])
  16. > str(dat)
  17. 'data.frame':        60 obs. of  4 variables:
  18. $ cul  : Factor w/ 5 levels "1","2","3","4",..: 1 1 1 2 2 2 3 3 3 4 ...
  19. $ block: Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ...
  20. $ plot : Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3 1 ...
  21. $ y    : num  29.9 47.8 18.6 43.7 43.3 ...
  22. > mod <- aov(y ~ cul + block,data=dat)
  23. > summary(mod)
  24.             Df Sum Sq Mean Sq F value Pr(>F)
  25. cul          4    335   83.80   1.054  0.389
  26. block        3     30   10.16   0.128  0.943
  27. Residuals   52   4134   79.50               

  28. #查看数据
  29. > head(dat)
  30.   cul block plot        y
  31. 1   1     1    1 29.92395
  32. 2   1     1    2 47.77084
  33. 3   1     1    3 18.61392
  34. 4   2     1    1 43.67827
  35. 5   2     1    2 43.29565
  36. 6   2     1    3 33.36473
  37. > library(reshape2)
  38. > dd <- dcast(dat, cul+block~plot)
  39. Using y as value column: use value.var to override.

  40. # 转换后的数据
  41. > head(dd)
  42.   cul block        1        2        3
  43. 1   1     1 29.92395 47.77084 18.61392
  44. 2   1     2 26.82941 28.22210 28.30006
  45. 3   1     3 25.04417 33.55550 18.65392
  46. 4   1     4 29.47895 28.04065 23.50930
  47. 5   2     1 43.67827 43.29565 33.36473
  48. 6   2     2 16.27698 28.26213 38.50232

  49. # 求3个观测值的平均数
  50. > 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
  51. > dd <- dd[,-(3:5)]
  52. > head(dd)
  53.   cul block     mean
  54. 1   1     1 32.10291
  55. 2   1     2 27.78386
  56. 3   1     3 25.75120
  57. 4   1     4 27.00964
  58. 5   2     1 40.11288
  59. 6   2     2 27.68048

  60. # 正确的模型
  61. > mod1 <- aov(mean ~ cul + block,data=dd)
  62. > summary(mod1)
  63.             Df Sum Sq Mean Sq F value Pr(>F)
  64. cul          4  111.7   27.93   0.692  0.612
  65. block        3   10.2    3.39   0.084  0.968
  66. Residuals   12  484.4   40.37               
  67. ```
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:农业数据 R语言 小区

<img src="stati ...

沙发
yijiaobani 发表于 2017-3-27 19:05:18
我用markdown语法,然后点击快捷键发现可以了,原来可以支持markdown啊,高兴中,然后提交,发现发表后成乱码了。。。。。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 04:56