library(tidyr)
df <- tibble(col1 = as.Date(c(NA, "2019-01-01")))
#> # A tibble: 2 x 1
#> col1
#> <date>
#> 1 NA
#> 2 2019-01-01
我正在处理上面的小标题。我想将NA
替换为字符串Not Applicable
。但这是行不通的。为什么?我该怎么办?
df %>% replace_na(list(col1 = "Not Applicable"))
#> Error in charToDate(x) :
#> character string is not in a standard unambiguous format
答案 0 :(得分:1)
"Not applicable"
是character
,我们正在尝试用NA
来更改Date
类中的character
。无法执行某些操作,因为这些操作将成为不同的类输出。相反,请事先更改class
,然后执行replace_na
library(dplyr)
df %>%
mutate(col1 = as.character(col1)) %>%
replace_na(list(col1 = "Not Applicable"))
# A tibble: 2 x 1
# col1
# <chr>
#1 Not Applicable
#2 2019-01-01
或将其放置在可以容纳多种类型的结构中,例如list
library(purrr)
df %>%
mutate(col1 = map(col1, ~ if(is.na(.x)) "Not Applicable" else .x))