如何在不指定列名的情況下將資料框中的所有“ NA”替換為“ ”?我發現函式有一個例子:NULLRreplace_natidyr
# Replace NAs in a data frame
df <- tibble(x = c(1, 2, NA), y = c("a", NA, "b"))
df %>% replace_na(list(x = 0, y = "unknown"))
但我的表有超過 10 列,它可能會改變。無法像上面的示例那樣指定列名。
uj5u.com熱心網友回復:
Base R 的方法:
apply(df, 2, function(x) { x[ is.na(x) ] <- 'NULL'; x})
請注意,您不能真正插入NULL,因為它的長度為 0,您可以插入:''或NA
uj5u.com熱心網友回復:
這里有兩種方法。一種假設您想要數字列中的 0 和字符中的“未知”,另一種假設您想要獨立于列型別的“NULL”。
方法一:
library(tidyr); library(dplyr, warn.conflicts = FALSE)
df <- tibble(x = c(1, 2, NA), y = c("a", NA, "b"))
df %>%
mutate(
across(where(is.numeric), replace_na, 0),
across(where(is.character), replace_na, "unknown")
)
#> # A tibble: 3 × 2
#> x y
#> <dbl> <chr>
#> 1 1 a
#> 2 2 unknown
#> 3 0 b
由reprex 包于 2022-11-10 創建(v2.0.1)
方法二:
library(tidyr); library(dplyr, warn.conflicts = FALSE)
df <- tibble(x = c(1, 2, NA), y = c("a", NA, "b"))
df %>%
mutate(
across(everything(), ~ if(anyNA(.)) replace_na(as.character(.), 'NULL'))
)
#> # A tibble: 3 × 2
#> x y
#> <chr> <chr>
#> 1 1 a
#> 2 2 NULL
#> 3 NULL b
由reprex 包于 2022-11-10 創建(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/531246.html
標籤:r数据框
上一篇:如何遍歷R中的字串串列?
下一篇:過濾并顯示來自R資料框的選定結果
