首页 > 解决方案 > 计算时间数据的均值和标准误差

问题描述

有没有办法计算持续时间数据的平均值和标准误差?我曾尝试在此站点上进行类似的修复,但没有成功。

数据需要按“站点”和“治疗”分组。

我希望能够根据每个“站点”计算每个“治疗”的“HH.MM.SS”的平均值和标准误差。

    names(Socials)
    [1] "Site"      "Date"      "Treatment" "Block"     "HH.MM.SS"  "Max.N"

数据样本如下(两个站点之一):

    Site       Date Treatment Block             HH.MM.SS Max.N
    MH 2018-10-06         C     1     2020-07-05 00:08:05           9
    MH 2018-10-08         D     1     2020-07-05 00:12:56           6
    MH 2018-10-07         V     1     2020-07-05 00:57:52           4
    MH 2018-10-05     V + D     1     2020-07-05 00:53:14           4
    MH 2018-10-12         C     2     2020-07-05 00:03:57           7
    MH 2018-10-10         D     2     2020-07-05 00:21:34           2
    MH 2018-10-11         V     2     2020-07-05 01:10:24           4
    MH 2018-10-09     V + D     2     2020-07-05 01:15:17           6
    MH 2018-10-15         C     3     2020-07-05 00:08:44           1
    MH 2018-10-13         D     3     2020-07-05 00:58:22          23
    MH 2018-10-14         V     3     2020-07-05 00:00:07           3
    MH 2018-10-16     V + D     3     2020-07-05 01:09:12           4


    # CreatePOSIXct time objects for date.
    Socials$Date <- as.POSIXct(Socials$Date, format = "%d/%m/%y")

    # CreatePOSIXct time objects for the total time duration for each treatment
    Socials$HH.MM.SS <- as.POSIXct(Socials$HH.MM.SS, format = "%H:%M:%OS")

我没有在这里提供所有数据,因此数据可以是子集,如下所示,以生成一个工作示例

   #Subset Data - split sites MH and GI 
    MH.data <- subset(Socials, Site == 'MH')
    GI.data <- subset(Socials, Site == 'GI')

    ##### Calculate summary statistics for Observations ######
    library(data.table) 
    library(plotrix)

    df1 = data.table(Socials)

    df1_output = df1[, .("HH.MM.SS" = mean(HH.MM.SS), 
                   "std" = std.error(Treatment)), 
               by = c("Site", "Treatment")]

任何帮助将不胜感激。

提前致谢。我希望这里提供的信息是好的。

标签: rtimemeanstandard-error

解决方案


我认为你可以正常进行。这对我有用:

> x=c(as.Date("2018-10-06"), as.Date("2018-11-06"), as.Date("2018-12-06"))
> mean(x)
[1] "2018-11-05"
> sd(x)
[1] 30.50137
> std.error(x)
[1] 17.60997

推荐阅读