Я ищу, чтобы определить соотношение пропущенных значений в каждом столбце кадра данных, разделенное на отдельные группы в этом кадре данных.
Я довольно новичок в R, поэтому до сих пор не добился большого успеха.Вот пример набора данных для его проверки:
df <- data.frame(
programme = c('A','B','B','A','B','C','C','C','C','A'),
v1 = c(24,NA,NA,45,NA,23,22,23,45,23),
v2 = c(NA,1,1,NA,0,1,1,1,1,NA),
v3 = c(2,3,2,3,2,NA,NA,NA,NA,2))
Я думал о разбиении кадра данных по группам, а затем о применении функции для каждого столбца, но, похоже, это не сработало
per_missing <- data.frame()
df %>%
group_by(programme)
per_missing <- apply(df, 2, function(col)sum(is.na(col))/length(col))
В идеале эта информация должна быть записана в новый фрейм данных, где значения коэффициента пропущенности каждого столбца указаны для каждой группы.И выглядело примерно так:
res <- data.frame(
variables = c('v1','v2','v3'),
A = c(0.0, 1, 0.0),
B = c(1, 0.0, 0.0),
C = c(0.0, 0.0, 1)
)
variables A B C
1 v1 0 1 0
2 v2 1 0 0
3 v3 0 0 1
Заранее спасибо за помощь!