簡體   English   中英

基於R中日期的子集數據幀

[英]Subset data frame based on date in R

我想根據日期對數據框進行子集化。 我的數據框的結構如下:

 ``` str(db18) 'data.frame': 15790 obs. of 9 variables: $ Average.Distance : num 5462 3093 5918 5752 1563 ... $ Total.HIR : num 1367 588 1881 1745 278 ... $ Velocity.Band.6.Average.Distance: num 0 0 0 0 0 0 0 0 0 0 ... $ Date : Factor w/ 88 levels "1/2/18","1/3/18",..: 50 50 50 50 50 50 50 50 50 50 ... $ Week.Number : int 1 1 1 1 1 1 1 1 1 1 ... $ Session.Type : Factor w/ 23 levels "Captain's Run",..: 2 2 2 2 2 2 2 2 2 2 ... $ Day : Factor w/ 6 levels "Friday","Monday",..: 5 5 5 5 5 5 5 5 5 5 ... $ Season : int 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 ... $ Round : Factor w/ 23 levels "BYE","PM 1","PM 2",..: 5 5 5 5 5 5 5 5 5 5 ... #> Error: <text>:2:23: unexpected symbol #> 1: str(db18) #> 2: 'data.frame': 15790 obs. #> ^ ``` 

我希望從3/4/18開始創建我的數據的子集。 這是我嘗試運行的代碼,並已通過此警告消息反彈。

 ``` db18 <- subset(db18, + Date >= "3/4/18") Warning message: In Ops.factor(Date, "3/4/18") : '>=' not meaningful for factors #> Error: <text>:3:9: unexpected symbol #> 2: + Date >= "3/4/18") #> 3: Warning message #> ^ ``` 

我了解我可能需要更改日期格式。 我怎樣才能最好地做到這一點,並最終從3/4/18集我的數據?

任何幫助將不勝感激。 謝謝。

這里的問題是日期列是一個因素,這意味着您不能直接對它使用不等式運算符。 在保持數據框結構相同的同時,這里的一個選項是將date列轉換為真實日期,然后進行比較:

date_comp <- as.Date("3/4/18", format="%d/%m/%y")
subset(db18, as.Date(db18$Date, format="%Y-%m-%d") >= date_comp)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM