首页 > 解决方案 > 指定多年的时间段

问题描述

我有一个带有变量“日期”的数据集,从 2001 年 1 月 1 日到 2015 年 12 月 31 日。我需要生成一个新变量来指示不同的时间段。

时间间隔:1月15日至2月10日。

2015 年 1 月 15 日至 2 月 10 日——时间 = 1

2001-2014 年 1 月 15 日至 2 月 10 日 -- 时间 = 0

有没有生成新变量的好方法?

非常感谢!

标签: r

解决方案


如果您的日期变量还不是日期时间对象,您可以使用如下as.Date()函数对其进行转换:

df$Date <- as.Date(df$Date, format = "%Y-%m-%d")

您可以使用ifelse语句创建一个新变量,如下所示:

df$Time <- ifelse(df$Date > "2015-01-15" & df$Date < "2015-02-10", 1, 
ifelse((df$Date > "2014-01-15" & df$Date < "2014-02-10") | 
(df$Date > "2013-01-15" & df$Date < "2013-02-10") | 
(df$Date > "2012-01-15" & df$Date < "2012-02-10") | 
(df$Date > "2011-01-15" & df$Date < "2011-02-10"), 0, "NA"))

推荐阅读