когда я создаю столбец с оператором моржа ":=", мне нужно позже ссылаться на тот же столбец для значений replace_na().
Когда я использую операторы defuse, аргумент 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)
Предполагаемый результат: в столбце «привет» нет значений NA (они заменяются на 0).
ох спасибо! это работает хорошо. Если вы выразите это как ответ, я могу принять это.
Синтаксис replace_na
немного другой, поэтому мы могли бы использовать:
... |> mutate({{column_name}} := coalesce({{column_name}}, 0))
или
... |> mutate(across({{column_name}}, ~replace_na(., 0)))
Вы можете рассмотреть возможность использования
mutate({{column_name}} := coalesce({{column_name}}, 0))
илиmutate(across({{column_name}}, ~replace_na(., 0)))
.