计算每个摄像机每小时不同昆虫订单的平均值并绘图

Calculating the mean of different insect orders per camera per hour and plotting

您好,我的数据集由不同的相机组成,每个日期和小时都有观察结果,它看起来大致如下:

d <- read.table(text=
'Camera     datehour    order        observations
 1          2019051212  Araneae      2
 1          2019051213  Araneae      4
 1          2019051214  Lepidoptera  3
 1          2019051215  Lepidoptera  2
 2          2019051213  Lepidoptera  5
 4          2019051214  Araneae      3  
 4          2019060423  Araneae      2
 5          2019070503  Araneae      1
 5          2019070503  Araneae      6 ', header=TRUE)

如您所见,摄像机 1 拍摄了四个小时,摄像机 2 拍摄了一个小时,摄像机 4 拍摄了两个小时,摄像机 5 拍摄了一个小时。我想添加一个额外的列,其中包含每个订单每小时每个摄像头的平均值,应该如下所示:

Camera datehour     order        observations   mean
1      2019051212   Araneae         2           0.5
1      2019051213   Araneae         4           1
1      2019051214   Lepidoptera     3           0.75
1      2019051215   Lepidoptera     2           0.5
2      2019051213   Lepidoptera     5           5
4      2019051214   Araneae         3           1.5 
4      2019051223   Araneae         2           1
5      2019070503   Araneae         1           1
5      2019070503   Lepidoptera     6           6

编辑:“平均值的计算方法是将每个摄像机的唯一 'datehour' 计数除以观察值。

示例:相机 1 有 4 个独特的 'datehour' 因此 Araneae(2) 的第一次观察的平均值是 0.5"

最终,我想绘制在 x 轴上具有顺序且在 y 轴上具有平均值的数据(忽略摄像机编号)。这是正确的方法吗?我可以用这个计算标准误差吗?

我尝试了 google,但老实说,一切似乎都让人不知所措,我找不到我想要的答案。

提前致谢!

这是一个棘手的问题。不是最优雅的解决方案,但它确实有效。在 Base-R

d$mean <- unlist(lapply(split(d,d$Camera), function(x) x$observations/sum( sub(" .*","",unique(paste(d$Camera,d$datehour))) %in% x$Camera[1])))


> d
  Camera   datehour       order observations mean
1      1 2019051212     Araneae            2 0.50
2      1 2019051213     Araneae            4 1.00
3      1 2019051214 Lepidoptera            3 0.75
4      1 2019051215 Lepidoptera            2 0.50
5      2 2019051213 Lepidoptera            5 5.00
6      4 2019051214     Araneae            3 1.50
7      4 2019060423     Araneae            2 1.00
8      5 2019070503     Araneae            1 1.00
9      5 2019070503     Araneae            6 6.00