R中的“else if”语句

新手到R,遇到了一个问题。 我从HUD的Excel表中拉出,并build立了一个预制一堆操作的表单function。 不过,他们从2012年开始更改FIPS专栏的名称。所以我只想说

if(2013-2015) {do this} else if(2009-2012) {do this other thing} 

什么错误的是,这对2013-2015年工作完全正常,但我得到一个错误信息,当它击中2012年的“其他如果”部分。我的代码如下:

 library(gdata)#requires latest version of perl be downloaded library(dplyr) r<-function(ws,y){ library(dplyr) df<-read.xls(ws) if(y==2015||2014||2013){ df$fips2010<-gsub(99999,"",df$fips2010) df<-df[nchar(df$fips2010)<=5,] #adding a zero in front of all FIPS obs. with 4 characters df[nchar(df[,1])==4,1] <- paste("0", df[nchar(df[,1])==4,1], sep="") df<-mutate(df,Year=y) #filtering out puerto rico df<-df[-grep("^72",df$fips2010),] df$Year_FIPS<-paste(df$Year,df$fips2010,sep="_") df<-select(df,Year_FIPS,cty_hud=countyname,st_hud=state_alpha,"3bdr_hud"=fmr3) return(df) } else if (y==2012||2011||2010||2009){ df$FIPS<-gsub(99999,"",df$FIPS) df<-df[nchar(df$FIPS)<=5,] #adding a zero in front of all FIPS obs. with 4 characters df[nchar(df[,1])==4,1] <- paste("0", df[nchar(df[,1])==4,1], sep="") df<-mutate(df,Year=y) #filtering out puerto rico df<-df[-grep("^72",df$FIPS),] df$Year_FIPS<-paste(df$Year,df$FIPS,sep="_") df<-select(df,Year_FIPS,cty_hud=countyname,st_hud=state_alpha,"3bdr_hud"=fmr3) return(df) } } r13<-r(ws = "http://www.huduser.org/portal/datasets/fmr/fmr2013f/FY2013_4050_Final.xls", y="2013") r12<-r(ws = "http://www.huduser.org/portal/datasets/fmr/fmr2012f/FY2012_4050_Final.xls", y="2012") 

代码中的错误似乎是(正如@nicola在评论中指出的那样) y==2015||2014||2013总是如此。 大概的意图(也在一个评论中得到validation)来检查成员资格,例如replace成员

 y %in% c(2015,2014,2013)