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

如何在R中填写data.frame的缺失值?,r,dataframe,tidyverse,na,missing-data,R,Dataframe,Tidyverse,Na,Missing Data,我有多个列,其中缺少值。我想使用所有年份中同一天的平均值,同时为每个列填写缺失的数据。例如,DF是我的假数据,我看到两列(A&X)的缺少值 我的数据框中有许多列,我想对所有列进行概括,以填充缺少的值?我们可以使用na.aggregatefromzoo library(dplyr) library(zoo) DF %>% mutate(Year = year(Date), Month = month(Date), Day = day(Date)) %>% group

我有多个
,其中
缺少值
。我想使用所有年份中同一天的
平均值
,同时
为每个
列填写
缺失的
数据。例如,
DF
是我的假数据,我看到
两列(A&X)的
缺少


我的
数据框中有许多
,我想对所有
进行概括,以填充缺少的值?

我们可以使用
na.aggregate
from
zoo

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(.))))  
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(.))))