在数据框(df
)中,我有一个表示区域(一个因子)的变量和一个对每个观察进行加权的变量。如果我想知道每个地区有多少观察,我只使用summary(df$region)
。
我想知道的是,考虑到每次观察的权重,我怎样才能看出每个区域的大小是多少?
答案 0 :(得分:1)
您可以使用tapply
按地区加权(我认为这就是您的意思,但请澄清我是否误解了):
> df <- data.frame(region=sample(levels(state.region), 200, rep=T), weight=runif(200))
> summary(df$region)
North Central Northeast South West
55 46 49 50
> with(df, tapply(weight, region, sum))
North Central Northeast South West
27.73835 23.23487 24.71656 26.11786
如果您确实需要一些metric
* weight
,那么您只需将tapply
语句修改为weight
* metric
,而不仅仅是{{} 1}}用于第一个参数。