使用R条件创建变量

时间:2012-10-14 08:14:37

标签: r

我正在尝试根据日期创建一个新的var“PERIOD”。样本数据如下:

Date
1/10/2012
1/11/2012
1/12/2012
1/13/2012
1/14/2012
1/15/2012
1/16/2012
1/17/2012
1/18/2012

在调整后,新数据集如下所示:

  Date      PERIOD
1/10/2012     Y1
1/11/2012     Y1
1/12/2012     Y1
1/13/2012     Y1
1/14/2012     Y1
1/15/2012     Y2
1/16/2012     Y2
1/17/2012     Y2
1/18/2012     Y2

我使用的代码是

dat$PERIOD<-{If '1/10/2012' <=  as.Date(dat$Date) <= '1/14/2012' dat$PERIOD='Y1' else
    If '1/15/2012' <=  as.Date(dat$Date) <= '1/18/2012'dat$PERIOD='Y2'
}

但我收到错误:

Error: unexpected string constant in dat$PERIOD<-{If '1/10/2012'

谢谢。的问候,

1 个答案:

答案 0 :(得分:2)

请参阅?as.Date了解正确的日期格式。
你的条件陈述大多是错误的。 R区分大小写。您必须使用if。请在下面找到一些示例代码:

d <- data.frame(Date=as.Date(paste(2012, 1, 10:18, sep="/")), stringsAsFactors=FALSE)
d$PERIOD <- ifelse(as.Date("2012/1/15") > d$Date, "Y1", "Y2")