У меня есть фрейм данных, некоторые столбцы которого имеют только уникальное значение или NA.Я хочу выбрать эти столбцы и заполнить NA в этих столбцах уникальной непропущенной переменной в столбце.
Вот фиктивные данные:
df = data.frame( A = c(1,NA,1,1,NA), B = c(2,NA,5,2,5), C =c(3,3,NA,NA,NA))
#df
# A B C
#1 1 2 3
#2 NA NA 3
#3 1 5 NA
#4 1 2 NA
#5 NA 5 NA
Я хочу получить:
#df
# A B C
#1 1 2 3
#2 1 NA 3
#3 1 5 3
#4 1 2 3
#5 1 5 3
До сих пор я пытался:
df = df %>%
map_if((length(unique(na.omit(.)))== 1), ~ unique(na.omit(.)))
df = df %>%
mutate_if((length(unique(na.omit(.)))== 1), ~ unique(na.omit(.)))
Оба выдавали следующую ошибку:
Ошибка в зонде (.x, .p): length (.p) == length (.x) не ИСТИНА
Может кто-нибудь сказать, какой правильный синтаксис для достижения того, что я хочу?