Home > Back-end >  Replace NAs with zeros using ifelse
Replace NAs with zeros using ifelse

Time:12-24

I am trying to replace NAs in my variable- called violence- with zeros and create a new dummy variable using ifelse. The violence variable has several categories and NAs. The category ignore should be coded 1 but other categories including NAs should be coded 0. I use the following code:

   df$new_variable<-ifelse(is.na(df$violence)=="ignore",1,0)

However, the code did not produce any results.

CodePudding user response:

There is syntax issue in the code

is.na(df$violence) == "ignore"

will be comparing the logical column derived from is.na with "ignore", instead if the description is as stated in the OP's post - The category ignore should be coded 1 but other categories including NAs should be coded 0., use

df$new_variable <-  (df$violence %in% "ignore")

Here, we check for values that are "ignore" with %in% which returns a logical vector - TRUE only for "ignore" and FALSE for all others including NA (== returns NA for NA values) and then convert to binary with (TRUE -> 1 and FALSE -> 0)

  • Related