因子加权值

时间:2014-01-26 01:49:12

标签: r summary

在数据框(df)中,我有一个表示区域(一个因子)的变量和一个对每个观察进行加权的变量。如果我想知道每个地区有多少观察,我只使用summary(df$region)

我想知道的是,考虑到每次观察的权重,我怎样才能看出每个区域的大小是多少?

1 个答案:

答案 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}}用于第一个参数。