2012-10-14 28 views
0

我試圖根據日期創建一個新的變量「PERIOD」。下面的示例給出的數據是:有條件地創建變量使用R

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' 

謝謝喲ü。問候,

回答

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") 
+0

謝謝塞巴斯蒂安!有效。 – Beta

+0

只是忘了投票:) – Beta