【发布时间】:2017-11-19 21:11:29
【问题描述】:
问题 1: 我有一个数据,其日期变量采用这种格式:
$ purchase_date: Factor w/ 525 levels "01APR2012:00:00:00"
如何为年份创建一个新列,为月份创建一个新列。
问题 2:
data2$mydate <- data2$purchase_date
as.Date(data2$mydate, format = "%d%B%Y")
data2$Fyear<-ifelse(data2$mydate>="2011-08-01" & data2$mydate<"2012-08-31",2012,ifelse(data2$mydate>="2012-08-01" & data2$mydate<"2013-08-01",2013,ifelse(data2$mydate<"2011-08-01",2011,2014)))
> class(data2$mydate)
[1] "factor"
> typeof(data2$mydate)
[1] "integer"
Warning messages:
1: In Ops.factor(data2$mydate, "2011-08-01") :
‘>=’ not meaningful for factors
2: In Ops.factor(data2$mydate, "2012-08-31") :
‘<’ not meaningful for factors
如何在逻辑上比较日期?
非常感谢!
【问题讨论】:
-
(1) 你认为
and是做什么的?试试&。 (2) 比较字符串可能会导致错误的结果。在第二个比较中,您根本不使用任何引号。语法错误是您主要关心的问题之一。请提供一个可重复的示例和所需的结果,以便人们可以尝试提供帮助。 -
还是不行。
-
& 你需要引用你的日期并将它们转换为日期/日期时间; R 不知道如何处理
12AUG2012。请参阅?as.Date、?as.POSIXct和格式化字符串?strptime。 -
as.Date("18MAY2013:00:00:00", "%d%B%Y")- 这有帮助吗?现在您可以与其他日期进行合乎逻辑的比较。 -
它有帮助。谢谢!这是我的第一个问题。我试图把这个问题说清楚。