2

我总是不确定如何使用dplyr检索摘要。

让我们假设我有一个个人和家庭的摘要。

dta = rbind(c(1, 1, 45), 
  c(1, 2, 47), 
  c(2, 1, 24),
  c(2, 2, 26), 
  c(3, 1, 67), 
  c(4, 1, 20),
  c(4, 2, 21),
  c(5, 3, 7)
 ) 
dta = as.data.frame(dta)
colnames(dta) = c('householdid', 'id', 'age')

 householdid id age
           1  1  45
           1  2  47
           2  1  24
           2  2  26
           3  1  67
           4  1  20
           4  2  21
           4  3   7

想象一下,我想计算家庭中的人数和家庭的平均年龄,然后在原始数据集中重新使用这些信息。

dta %>% 
  group_by(householdid) %>% 
  summarise( nhouse = n(), meanAgeHouse = mean(age) ) %>% 
  merge(., dta, all = T)

我经常使用merge,但是当数据集很大时有时会很慢。
是否有可能

mutate 

代替

merge ? 
4

1 回答 1

0
dta %>% group_by(householdid) %>% mutate( nhouse = n(), meanAgeHouse = mean(age) )
于 2017-10-17T15:25:50.043 回答