У меня есть два набора данных: inds (физические лица) и hhs (домашние хозяйства).
Я пытаюсь суммировать все доходы в долларах США, сгруппированные по UID (уникальному идентификатору), и создать новый столбец в чч с суммой дохода всех людей в домохозяйствах.Некоторые люди не имеют никакого дохода, и в этом случае у них есть «NA» для этой переменной.Код, который я использую:
hhs <- left_join(hhs, inds %>% group_by(UID) %>% summarize(hhincome = sum(income, na.rm=TRUE)))
Однако он очень медленный.inds имеет более 2 миллионов строк, hhs - около 550 000 строк.Я использовал dplyr для усреднения или подсчета аналогичных переменных в одних и тех же наборах данных, и обычно для этого требуется десять секунд или меньше.Что-то я делаю не так?Есть ли способ сделать это быстрее?
Редактировать: как я уже сказал, я использовал dplyer для получения средних значений домохозяйств без проблем с
hhs <- left_join(hhs, inds %>% filter(AGE > 2) %>% group_by(UID) %>% summarize(L_Bilingual = mean(Bilingual, na.rm=TRUE)))
Для расчета требуется 5 секундсредства с кодом выше.Есть ли что-то особенное в функции sum (), которая делает ее медленнее?