如何在R中填写data.frame的缺失值?

水电

我有多个columnsmissing values我想使用mean所有年份中同一天fillingmissing数据,使用一年数据column例如,DF我的假数据是我在其中看到的missingtwo columns (A & X)

library(lubridate)
library(tidyverse)
library(naniar)

set.seed(123)

DF <- data.frame(Date = seq(as.Date("1985-01-01"), to = as.Date("1987-12-31"), by = "day"),
                 A = sample(1:10,1095, replace = T), X = sample(5:15,1095, replace = T)) %>% 
                replace_with_na(replace = list(A = 2, X = 5))

fillColumn A,我使用以下代码

Fill_DF_A <- DF %>% 
          mutate(Year = year(Date), Month = month(Date), Day = day(Date)) %>% 
          group_by(Year, Day) %>% 
  mutate(A = ifelse(is.na(A), mean(A, na.rm=TRUE), A))

我有很多东西columns,我data.frame想对此进行概括columns以填补缺失的值?

阿克伦

我们可以使用na.aggregatezoo

library(dplyr)
library(zoo)
DF %>% 
  mutate(Year = year(Date), Month = month(Date), Day = day(Date)) %>% 
      group_by(Year, Day)  %>%
     mutate(across(A:X, na.aggregate))

或者,如果我们更喜欢使用条件语句

DF %>% 
  mutate(Year = year(Date), Month = month(Date), Day = day(Date)) %>% 
  group_by(Year, Day)  %>%
  mutate(across(A:X, ~ case_when(is.na(.) 
                 ~ mean(., na.rm = TRUE), TRUE ~ as.numeric(.))))  

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章