NA 替换为空格

Sal*_*dor 5 replace r dataframe na

我使用了相同的方法将 NA 替换为空格或其他字符,但由于某种原因,这个方法不起作用。我想将数据框中的 NA 替换为空白(年份和年度列)。我究竟做错了什么?

shad.92 <- structure(list(year = c(1992, NA, NA, NA, NA), type = c("all age abundance index", 
"adjusted number of fish older than age 0 measured", "adjusted total number of fish measured", 
"percent YOY", "YOY abundance index"), September = c(755, 0, 
565, 100, 755), October = c(530, 0, 434, 100, 530), November = c(463, 
0, 338, 100, 463), December = c(266, 1, 136, 99.3, 264), Annual = c(2014, 
NA, NA, NA, 2012)), row.names = c(NA, -5L), class = c("tbl_df", 
"tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)

我尝试了这个但没有运气:

shad.92 <- shad.92[is.na(shad.92)] <- ""
Run Code Online (Sandbox Code Playgroud)

然后我当时尝试了从年份开始的一列:

shad.92$year <- as.character(shad.92$year)
    shad.92$year[is.na(shad.92$year)] <- " "
    shad.92 
Run Code Online (Sandbox Code Playgroud)

但我得到引号而不是空格(“”)

Mos*_*ite 1

当您""在 a 中时tibble,它会显示带有引号的该列的元素。然而却""是一片空白。当您使用基本 R 时,data.frame不会打印引号。运行代码后尝试以下操作。

as.data.frame(shad.92)
Run Code Online (Sandbox Code Playgroud)

但如果你想将其打印为 a kable,则kable不应打印其""本身(至少不打印到终端;我没有尝试打印到 HTML)。

library(knitr)
kable(shad.92)
Run Code Online (Sandbox Code Playgroud)