R语言中的SQL窗口函数

时间:2012-12-10 10:11:44

标签: r

我想使用postgresSQL语言解决R中编写的窗口函数。

据我所知,Raggregate()来计算分组数据。它是否有任何库来支持窗口函数?

1 个答案:

答案 0 :(得分:0)

如果您熟悉SQL语法,则可以使用aggregatemerge。 选择其中一个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为更详细的构造提供的内容。