在R studio中使用Y-M-D h-m-s时间戳按日期而非时间过滤?

时间:2017-10-16 03:33:44

标签: r dplyr rstudio

我一直在尝试为我的研究项目过滤数据集。我有时间戳,包括“ts”栏中的年/月/日和时/分/秒(时间戳)。

我一直在使用dplyr“过滤器”功能:

filter(df.flat.subset1, (projID == "168", ts= 2017-08-03))

我一直收到0行或此错误

Error: unexpected numeric constant in:
filter(df.flat.subset1, projID == "168", ts == "2017-08-03 %H:%M:%S)

如果我试着把时间留作未知......

df.flat.subset1是我的数据集(忽略projID,它只是我在多个项目的更大数据集中的项目168),我想要过滤的日期是2017年8月3日。

我在那个日期有数千个值,所以我无法指定确切的时间,但我想至少缩小它。

知道我怎么能这样做吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

我建议使用lubridate包,因为它更容易操作日期:

library(lubridate)
filter(df.flat.subset1, projID == "168", date(ts) == date('2017-08-03'))

答案 1 :(得分:0)

如果您想忽略时间戳,则需要format(ts, '%Y-%m-%d') == '2017-08-03'作为过滤器。

您也可以尝试as.Date(ts) == '2017-08-03'