df$z
- это столбец списка, поэтому вам нужно использовать функцию purrr
, чтобы применить replace_na
к каждому элементу списка. Здесь мы можем просто использовать map
, чтобы применить replace_na
к каждому вектору в df$z
, заменив все NA
на 0
. Ваш синтаксис, как указано выше, заменит отсутствующий список элементов (отмеченный NULL
) на "doesnotwork"
, не пропуская значения внутри элементов списка.
library(tidyverse)
df <- tibble(x = c(1, 2, NA), y = c("a", NA, "b"), z = list(1:5, rep(NA,10), 10:20))
df1 <- df %>%
replace_na(list(x = 0, y = "0")) %>%
mutate(z = map(z, replace_na, 0))
df1$z
#> [[1]]
#> [1] 1 2 3 4 5
#>
#> [[2]]
#> [1] 0 0 0 0 0 0 0 0 0 0
#>
#> [[3]]
#> [1] 10 11 12 13 14 15 16 17 18 19 20
Создано в 2018-05-08 пакетом Представить (v0.2.0).