gpt4 book ai didi

r - 计算 R 中的平均时间

转载 作者:行者123 更新时间:2023-12-02 08:19:05 27 4
gpt4 key购买 nike

我的 Dataframe 名为 copy1:

    copy1
Source: local data frame [4 x 4]
Groups: GM [2]

GM Avg.Start.Time Avg.Close.Time Avg.Last.Task.Duration
(fctr) (fctr) (fctr) (int)
1 ED 13:15 16:16 181
2 ED 16:12 17:44 92
3 LD 15:32 17:27 115
4 LD 14:38 17:11 153

我想计算Avg.Close.Time Per GM

我试过:

copy1$Avg.Start.Time <-strptime(copy1$Avg.Start.Time, "%H:%M")
copy1%>%group_by(GM)%>%
summarise(mean(copy1$Avg.Start.Time,na.rm=T))

但是得到这个:

Error: column 'Avg.Start.Time' has unsupported type : POSIXlt, POSIXt

我也尝试过使用 lubridate:

copy1$Avg.Start.Time <- hm(copy1$Avg.Start.Time)

mean(copy1$Avg.Start.Time,na.rm = T)

但得到“0”

关于如何计算每个 GMAvg.Start.Time 有什么想法吗?

最佳答案

您可以使用as.POSIXct 进行转换,其结果可用于mean:

result <- copy1%>%group_by(GM)%>%
summarise(mean(as.POSIXct(Avg.Start.Time, format="%M:%S"),na.rm=T))

但是,这会将当前日期添加到时间中:

print(result)
## A tibble: 2 x 2
## GM mean(as.POSIXct(copy1$Avg.Start.Time,...
## <fctr> <time>
##1 ED 2016-08-24 00:14:54
##2 LD 2016-08-24 00:15:05

正如 OP 所指出的,我们可以格式化结果以删除日期:

result <- copy1%>%group_by(GM)%>%
summarise(Avg.Start.Time=format(mean(as.POSIXct(Avg.Start.Time, format="%M:%S"),na.rm=T), format="%M:%S"))
## A tibble: 2 x 2
## GM Avg.Start.Time
## <fctr> <chr>
##1 ED 14:43
##2 LD 15:05

关于r - 计算 R 中的平均时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39123027/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com