Mutate at and if - simple solution?

Hi,
I have this simple data file:



data.frame(stringsAsFactors=FALSE,
                                                            URN = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"),
                                                             A2 = c(100, 100, 100, 100, 80, 80, 90, 100, 80, 100),
                                                          month = c("03", "01", "03", "02", "01", "01", "01", "01", "02", "01"),
                                                          Blank = c(1, 1, 1, 1, 1, 0, 1, 1, 1, 1),
                                                              B = c(NA, NA, NA, NA, NA, 0, NA, 0, NA, NA),
                                                              C = c(NA, NA, NA, NA, NA, 0, NA, 0, NA, NA),
                                                              D = c(NA, NA, NA, NA, NA, 0, NA, 0, NA, NA),
                                                              E = c(NA, NA, NA, NA, NA, 0, NA, 0, NA, NA),
                                                              F = c(NA, NA, NA, NA, NA, 1, NA, 0, NA, NA)
                                                   )

Now I would like to convert all NAs in columns 5-9 (or all columns apart from 1-4) and I don't know how to modify that:

mutate_if(is.numeric, ~if_else(is.na(.), 0, .)) %>%

to convert numeric variables but only within a range mentioned above...

Can you help please?

You can use mutate_at()

    mutate_at(vars(-c(1:4)), ~if_else(is.na(.), 0, .))
1 Like

Much appreciated as always! I was thinking about this option but I messed up something...

Thank you.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.