代码之家  ›  专栏  ›  技术社区  ›  alejandro_hagan

如何在R中使用replace_na()和debt函数参数

  •  0
  • alejandro_hagan  · 技术社区  · 2 年前

    当我使用walrus运算符“:=”创建列时,我需要稍后引用同一列来替换_na()值。

    当我使用debt运算符时,replace_na()参数不起作用。

    关于如何让它工作,有什么建议吗?

    
    library(tidyverse)
    
    test_fn <- function(column_name){
      
    dat1 <- tibble(
      id=1:5
      ,val=11:15
    )
    
    dat2 <- tibble(
      id=1:4
      ,"{{column_name}}":=11:14
    )
    
    out <- left_join(
      dat1
      ,dat2
      ,by=join_by(id)
    ) |> 
      replace_na(list("{{column_name}}"=0))
    
    return(out)
    
    }
    
    test_fn(hi)
    

    预期的输出是“hi”列没有NA值(它们被0替换)

    1 回复  |  直到 2 年前
        1
  •  1
  •   Jon Spring    2 年前

    语法为 replace_na 有点不同,所以我们可以使用:

    ... |> mutate({{column_name}} := coalesce({{column_name}}, 0))
    

    或

    ... |> mutate(across({{column_name}}, ~replace_na(., 0)))