如何在 df 中过滤日期时间(POSIXct),其中每个日期时间重复多次

问题描述 投票:0回答:0

我正在尝试按日期(POSIXct)过滤 df。在这个 df 中,每个日期重复 13 次。我尝试了各种方法,但结果是一个空的 df,除非我指定一个长的 date_time 间隔(例如 1 年)。如果我使用长date_time间隔,df有数据但是和date_time间隔不一致!!!

|DateXct            | sectname| Dist_m |TempAdj_C|
|:----------------- |:-------:|:------:|--------:|
|2022-12-16 16:30:06|   W1    |29.13   |24.1514  |
|2022-12-16 16:30:06|   W1    |30.14   |24.2424  |
|2022-12-16 16:30:06|   W1    |31.15   |24.2242  |
|.                  |         |        |         |
|.                  |         |        |         |
|. 13 times         |         |        |         |
|2022-12-16 16:37:40|   W1    |29.13   |24.1514  |
|2022-12-16 16:37:40|   W1    |30.14   |24.2515  |
|2022-12-16 16:37:40|   W1    |31.15   |24.2424  |
|2022-12-16 16:37:40|   W1    |32.17   |24.2697  |
|.                  |         |        |         |
|.                  |         |        |         |
|. 13 times         |         |        |         |

我用过过滤功能:

dftest <- df %>%
   filter(DateXct > '2022-12-16 16:30:06' & DateXct < '2022-12-16 16:52:45')

此外,“过滤”和“介于”功能(有和没有“as.POSIXct”和“格式”功能):

dftest <- df %>%
  filter(between(DateXct, as.POSIXct('2022-12-17 02:11:26', format="%Y-%m-%d %H:%M:%S"), as.POSIXct('2022-12-16 16:52:45', format="%Y-%m-%d %H:%M:%S")))

函数子集:

subset(df, DateXct> "2022-12-16 16:30:06" & DateXct < "2022-12-16 16:52:45")

另一种选择:

df[(df$DateXct> "2022-12-16 16:30:06" & df$DateXct < "2022-12-16 16:52:45"),]

我的新df(dftest)总是空的

r dataframe datetime filter posixct
© www.soinside.com 2019 - 2024. All rights reserved.