2017-10-16 87 views
0

我一直在試圖通過數據集篩選我的研究項目。我有時間戳,包括「ts」(時間戳)列中的年/月/日和時/分/秒。在R studio中使用Y-M-D h-m-s時間戳過濾日期但不是時間?

我一直在使用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日。

我有那個日期的數千個值,所以我不能指定確切的時間,但我想至少縮小這個範圍。

任何想法我可以做到這一點?

由於大部分

+0

請提供更多的代碼,並且不要忘記它的樣式由 – mel

+0

'2017-08-03'你真的打算' 2006'?你想在那裏使用'='還是'=='? – r2evans

+2

@mel,我不確定你的意思是「風格」。 Meg,提供[可重現的問題](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)(還有[最小的,可驗證的示例](https:// stackoverflow.com/help/mcve))對我們非常有用,並會增加獲得相關響應的可能性和速度。就目前而言,您的代碼中包含明顯的語法錯誤,應該給出不同的錯誤。 – r2evans

回答

0

你想format(ts, '%Y-%m-%d') == '2017-08-03'作爲過濾器,如果你想忽略時間戳。您也可以嘗試as.Date(ts) == '2017-08-03'

1

我建議使用lubridate包,因爲它更容易操縱日期:

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