Как посчитать длину значений NA по группе / фактору в R? - PullRequest
0 голосов
/ 11 мая 2018

Мне поручено манипулировать данными, полученными из 1258 уникальных исследований.

По размерам.28 миллионов индивидуальных наблюдений (включая NA) - 8 столбцов (переменных).имя объекта: dat

Столбец / переменная, в которой я особенно заинтересован - это образование (edu).Я хочу получить длины значений NA и Non-NA (для edu) для этих исследований путем агрегирования (данные $ edu ~ id_study )

This are the first five entries for the 8 columns, I want to keep id_study

До сих пор я использовал этот код для определения количества исследований, которые содержат как минимум 1 или более записей по edu.

numbers <- aggregate(dat$edu ~ dat$id_study, data=dat, FUN=length)

result from aggregate

У меня есть результат, который мне нужен для количественного определения числа уникальных идентификаторов id_study, которые имеют данные по edu.Это галочка в поле один.

Теперь мне нужно сделать то же самое для уникального id_study, который вообще ничего не имеет в образовании.Как мне это сделать?

Я пробовал так много кодов, чтобы определить длину NA для исследований, которые не имеют ничего на edu.

aggregate_2 <- aggregate(dat$edu ~ id_study, data=dat, FUN=length(dat[!is.na(dat)]))

это не работает: (

Может кто-нибудь пролить свет на этот вопрос, пожалуйста?

спасибо

РЕДАКТИРОВАТЬ ****** Просто чтобы уточнить, если я не совсем ясно в своем вопросе. Существует 1258 уникальных опросов / исследований (некоторые опросы могут проводиться в течение нескольких лет, например, ALB_2013 и ALB_2014 под id_study).

Из этих опросов,используя код уравнения 1 и код, который я вставил в описание, код 1 , я выяснил, что 530 из этих 1258 опросов дали> = 1 отдельное наблюдение под столбцом edu.

Это должно означать, что 728 уникальных опросов вообще не предоставили никакой информации в рамках edu. Я хочу составить названия 728 опросов и, используя функцию, надеюсь, хочу определить продолжительность НС для одного обследования, которое невообще не предоставляю никакой информации.

Надеюсь, это имеет смысл.

id_study (название опроса) id (столбец опроса) столбец, который меня интересует, это "edu".

1 Ответ

0 голосов
/ 11 мая 2018

Прежде всего: публикация снимка экрана с вашими данными является плохой практикой, так как для этого респондентам SO потребуется вводить данные вашего образца вручную.Используйте dput для публикации (части) ваших данных.Для дальнейших вопросов следуйте советам и ссылкам в первом комментарии Сотоса!

Кроме того, как насчет следующего:

numbers <- aggregate(
    edu ~ id_study, 
    data = dat, 
    FUN = function(x) c(n_nonNA = sum(!is.na(x)), n_NA = sum(is.na(x))))
...