簡體   English   中英

dplyr:mutate()和mutate_if()

[英]dplyr: mutate() and mutate_if()

我想將列中的所有NA更改為0.我可以使用mutate() ,但不能使用mutate_if()

這有效:

> test <- tibble(Q3.2 = c(1,2, NA, NA, 3),
                             Q8.2 = c(2, NA, 1, NA, 4))

> test %>% select_("Q3.2", "Q8.2") %>%
    mutate(Q3.2 = ifelse(is.na(Q3.2), 0, Q3.2),
           Q8.2 = ifelse(is.na(Q8.2), 0, Q8.2))

但這不是:

> test %>% select_("Q3.2", "Q8.2") %>%
+     mutate_if(is.na(.), 0, .)
Error in get(as.character(FUN), mode = "function", envir = envir) : 
  object 'p' of mode 'function' was not found

這不是mutate_if作用。 它預測列而不是行,因此與mutateifelse 要在數字列中將所有NA替換為0 s,請嘗試以下操作:

test %>% mutate_if(is.numeric, funs(ifelse(is.na(.), 0, .)))

要么

test %>% mutate_if(is.numeric, coalesce, ... = 0)

要么:

library(tidyr)
replace_na(list(Q3.2 = 0, Q8.2 = 0))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM