我想使用postgresSQL
语言解决R
中编写的窗口函数。
据我所知,R
有aggregate()
来计算分组数据。它是否有任何库来支持窗口函数?
答案 0 :(得分:0)
如果您熟悉SQL语法,则可以使用aggregate
和merge
。
选择其中一个example from the PostgreSQL manual,我们将使用
empsalary <- data.frame(depname=rep(c("develop", "personnel", "sales"), c(5, 2, 3)),
empno=c(11, 7, 9, 8, 10, 5, 2, 3, 1, 4),
salary=c(5200, 4200, 4500, 6000, 5200, 3500, 3900, 4800, 5000, 4800))
merge(empsalary, aggregate(salary ~ depname, empsalary, mean), by="depname")
重现第一个例子(按depname
计算平均工资)。
depname empno salary.x salary.y
1 develop 11 5200 5020.000
2 develop 7 4200 5020.000
3 develop 9 4500 5020.000
4 develop 8 6000 5020.000
5 develop 10 5200 5020.000
6 personnel 5 3500 3700.000
7 personnel 2 3900 3700.000
8 sales 3 4800 4866.667
9 sales 1 5000 4866.667
10 sales 4 4800 4866.667
您可能希望了解plyr为更详细的构造提供的内容。