R语言 如何将小时数与日期相加

o75abkj4  于 2023-10-13  发布在  其他
关注(0)|答案(2)|浏览(114)

我有一个长时间的大型数据集,其中包含多个个体,如下所示

event.id   timestamp             individual 
1          2021-08-31 09:03:01   A  
2          2021-08-31 10:02:11   A
3          2021-08-31 11:02:20   A
4          2021-08-31 12:02:20   A
5          2021-08-29 09:38:21   B
6          2021-08-29 09:53:06   B
7          2021-08-29 10:08:06   B

我想计算每个人的记录小时数的总和(例如,如果个人A的数据少于5小时,我会删除它)。我该怎么做?

jk9hmnmh

jk9hmnmh1#

library(dplyr)

df |>
  mutate(hrs = difftime(max(timestamp), min(timestamp), unit = "hours") |> 
  filter(hrs >= 5, .by = individual)
lndjwyie

lndjwyie2#

base R方法

# (1)
df$timestamp <- strptime(df$timestamp, format = "%Y-%m-%d %H:%M:%S") 
# (2)
new_df <- aggregate(x = list(time_difference = df$timestamp), 
                    by = list(indiviudal = df$individual), 
                    FUN = \(i) difftime(max(i), min(i), unit = "hours"))
# (3)
new_df[new_df$time_difference >= 5L, ]

timestamp转换为类POSIXlt(如果尚未完成)(#1)。使用aggregate()计算每个人的时间差(以小时为单位)(#2)。最后,子集new_df会导致每个玩具数据的空 Dataframe (#3)。

相关问题