我想将分析权重应用于某些时间序列数据,但我不知道如何在R中执行此操作。我正在转录一些Stata
代码,代码使用collapse
和{ {1}}。
Stata Code
[aweight='weightVar']
如何将分析权重应用于下面collapse temp [aweight='weightVar], by(year);
的数据作为每年每个ID的croparea
的加权变量?
示例数据
temp
答案 0 :(得分:2)
感谢您提供样本数据!这使事情变得更容易。
Stata collapse
与R functions aggregate
or ddply
类似。您似乎希望按croparea
分组的temp
加权(id
)加权。
For weighted means in R see this SO question;我将采用最佳解决方案并将其应用于您的数据:
library(plyr)
ddply(df, .(id), function(x) data.frame(wtempmean=weighted.mean(x$temp, x$croparea)))
id wtempmean
1 1 59.28554
2 2 59.28554