例如,假设我们有一个数据框df,其中包含了时间戳列timestamp和其他的列。我们希望按小时子集数据。
首先,我们需要将时间戳列转换为POSIXct格式:
df$timestamp <- as.POSIXct(df$timestamp, format="%Y-%m-%d %H:%M:%S", tz="GMT")
然后,使用dplyr包中的filter函数按小时子集数据:
library(dplyr)
hour_df <- df %>%
filter(hour(timestamp) == 4) # 选择4am的数据
这将创建一个名为hour_df的新数据框,其中只包含hour(timestamp)等于4的数据。
相似地,我们可以使用base R的subset()函数来按小时子集数据。
hour_df <- subset(df, format(timestamp, "%H") == "04") # 选择4am的数据
这将创建一个名为hour_df的新数据框,其中只包含timestamp列在4am时的数据。
注意:这两种方法可以用其他小时值来子集数据,只需更改过滤条件即可。