У меня есть фрейм данных с именем final_project_data со следующей структурой.Он включает 17 столбцов с данными, соответствующими округу / штату и годам.Например, в округе Болдуин в Алабаме в 2006 году население составляло 69162, уровень безработицы 4,2% и т. Д.
ID County State Population Year Ump.Rate Fertility
<dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
1003 Baldwin County Alabama 69162 2006 4.2 88
1015 Calhoun County Alabama 112903 2006 2.4 na
1043 Baldwin County Alabama na 2007 1.9 71
1049 Calhoun County Alabama 68014 2007 na 90
1050 CountyY Alaska 2757 2006 3.9 na
1070 CountyZ Alaska 11000 2006 7.8 95
1081 CountyY Alaska na 2007 6.5 70
1082 CountyZ Alaska 67514 2007 4.5 60
Есть ряд столбцов с пропущенными значениями, которые я пытаюсь заменитьсо средним значением для данного государства и года.Я сталкиваюсь с проблемами, пытаясь перебрать каждый столбец с пропущенными значениями, а затем каждое подмножество лет и строк, чтобы заполнить пропущенные значения средним значением.Код, который у меня пока есть, приведен ниже:
#get list of unique states
states <- unique(final_project_data$State)
#get list of columns with na in them - we will use this to impute missing
values
list_na <- colnames(final_project_data)[ apply(final_project_data, 2, anyNA) ]
list_na
#create a place to hold the missing values
average_missing <- c()
#Loop through each state to impute the missing values with the mean
for(i in 1:length(states)){
average_missing <- apply(final_project_data[which(final_project_data$State == states[i]),colnames(final_project_data) %in% list_na], 2, mean, na.rm = TRUE)
}
average_missing
Однако, когда я запускаю приведенный выше фрагмент кода, я получаю только один набор значений для каждого из столбцов с пропущенными значениями, а не для другого значениядля каждого государства.Я также не уверен, как расширить это, чтобы включить годы.Буду признателен за любую помощь или совет!