Доля NA для столбцов по переменной ID
У меня есть набор данных, как это:
df <- data.frame(id = c("a", "b", "c", "a", "b", "c", "a", "b"),
v1 = c(NA, 0.3, 0.2, 0.1, 0.2, 0.3, 0.2, NA),
v2 = c(rnorm(7), NA),
v3 = c(NA, rnorm(7)))
> df
id v1 v2 v3
1 a NA 0.82122120 NA
2 b 0.3 0.59390132 -0.05612874
3 c 0.2 0.91897737 -0.15579551
4 a 0.1 0.78213630 -1.47075238
5 b 0.2 0.07456498 -0.47815006
6 c 0.3 -1.98935170 0.41794156
7 a 0.2 0.61982575 1.35867955
8 b NA NA -0.10278773
Теперь я хочу измерить долю пропущенных по столбцам v1
, v2
, v3
, id
переменная идентификатора Должны быть новые переменные с такими именами, как в df
но с добавленным "_mis".
Важно то, что я хочу сделать это для конкретного идентификатора.
Если бы не было переменной id, это было бы так:
a <- colMeans(is.na(df))
names(a) <- paste(names(a), "_mis", sep="")
Как я могу сделать это для каждого идентификатора в отдельности? Я хочу создать имена переменных автоматически, например, "v2_mis_a" для id==a.