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
Post a Comment