In dplyr I can replace NA with 0 using the following code. The issue is this inserts a list into my data frame which screws up further analysis down the line. I don't even understand lists or atomic vectors or any of that at this point. I just want to pick certain columns, and replace all occurrences of NA with zero. And maintain the columns integer status.
library(dplyr) df <- tibble(x = c(1, 2, NA), y = c("a", NA, "b"), z = list(1:5, NULL, 10:20)) df df %>% replace_na(list(x = 0, y = "unknown"))
That works but transforms the column into a list. How do I do it without transforming the column into a list?
And here's how to do it in base R. But not sure how to work this into a mutate statement:
df$x[is.na(df$x)] <- 0
To replace NA with 0 in an R data frame, use is.na() function and then select all those values with NA and assign them to 0.
The COALESCE() function is part of the dplyr package and returns the first non-missing value of its arguments. Therefore, you can combine the MUTATE_ALL() function with the COALESCE() function, whose second argument is a zero, to replace all NA's with zeros.
To replace missing values in R with the minimum, you can use the tidyverse package. Firstly, you use the mutate() function to specify the column in which you want to replace the missing values. Secondly, you call the replace() function to identify the NA's and to substitute them with the column lowest value.
To replace all NAs in a dataframe use
df %>% replace(is.na(.), 0)
dt <- mutate(dt, x = ifelse(is.na(x), 0, x))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With