Error in If else loop in R -


i writing 1 code in r. first creating 1 blank column in data set , want assign 0 , 1 value in column according conditions. here code

#creating empty column in data file  mydata$final <- "";  #to assign 0,1 value in final variable if(mydata$default_config == "no" & is.na(mydata$best_config)=="true" & (mydata$almostdefaultconfig!=1 | mydata$almostdefaultconfig!=3)){   mydata$final <- 1   }else{   mydata$final <- 0     } 

and getting error

warning message: in if (mydata$default_config == "no" & is.na(mydata$best_config) ==  :   condition has length > 1 , first element used 

how can fix error? please me out. in advance

your problem 1 of vectorisation. if not vectorised. testing multiple values in each comparison in if statement , r telling use first because if not vectorised. need ifelse vectorised:

ifelse( mydata$default_config == "no" & is.na(mydata$best_config)=="true" & (mydata$almostdefaultconfig!=1 | mydata$almostdefaultconfig!=3) , 1 , 0 ) 

a reproducible example below. if x > 5 , y return 1 otherwise return 0:

x <- 1:10 # [1]  1  2  3  4  5  6  7  8  9 10  y <- seq(1,30,3) # [1]  1  4  7 10 13 16 19 22 25 28  x > 5 # [1] false false false false false  true  true  true  true  true  y %% 2 == 0 # [1] false  true false  true false  true false  true false  true  ifelse( x > 5 & y %% 2 == 0 , 1 , 0 ) # [1] 0 0 0 0 0 1 0 1 0 1 

Comments