用列平均值替换数据框中的 NA 值
Replace NA values in data frame with the column mean
拜托,我想逐列更改所有 NA 值。但我不知道我必须在我的代码中放置条件 [is.na(df1()input$to_mean)] 的位置。我的代码有效,但列中的所有值都已更改(逻辑上),但我只需要替换 NA 值。有人可以帮忙吗?
observeEvent(input$NA_mean, {
df1(df1() %>% mutate(!!input$to_mean := mean(df1()[[input$to_mean]], na.rm = T)))
})
#this code change all values in column to column mean, i need replace only NA values ([is.na(df1()input$to_mean)])
library(tidyverse)
df1 <- tibble(x = seq(3), y = c(1, NA, 2))
df1 %>% mutate(y = y %>% replace_na(mean(df1$y, na.rm = TRUE)))
#> # A tibble: 3 × 2
#> x y
#> <int> <dbl>
#> 1 1 1
#> 2 2 1.5
#> 3 3 2
由 reprex package (v2.0.0)
于 2022 年 3 月 10 日创建
拜托,我想逐列更改所有 NA 值。但我不知道我必须在我的代码中放置条件 [is.na(df1()input$to_mean)] 的位置。我的代码有效,但列中的所有值都已更改(逻辑上),但我只需要替换 NA 值。有人可以帮忙吗?
observeEvent(input$NA_mean, {
df1(df1() %>% mutate(!!input$to_mean := mean(df1()[[input$to_mean]], na.rm = T)))
})
#this code change all values in column to column mean, i need replace only NA values ([is.na(df1()input$to_mean)])
library(tidyverse)
df1 <- tibble(x = seq(3), y = c(1, NA, 2))
df1 %>% mutate(y = y %>% replace_na(mean(df1$y, na.rm = TRUE)))
#> # A tibble: 3 × 2
#> x y
#> <int> <dbl>
#> 1 1 1
#> 2 2 1.5
#> 3 3 2
由 reprex package (v2.0.0)
于 2022 年 3 月 10 日创建