我想根据日期对我的数据框进行子集化。我的数据框的结构如下:
```
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_comp <- as.Date("3/4/18", format="%d/%m/%y")
subset(db18, as.Date(db18$Date, format="%Y-%m-%d") >= date_comp)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句