R - SQL聚合最小值和最大值

时间:2017-04-05 20:38:07

标签: sql r max aggregate min

目前,我想从iris数据集中输出数据帧,该数据集将涵盖以下查询:

SELECT MIN(Sepal.Width), MAX(Sepal.Width), Sepal.Length, species FROM iris GROUP BY Sepal.Length, species

我创建了该代码:

query<-as.data.frame(aggregate(. ~ Sepal.Length, species, data = iris, FUN = function(x) c(min = min(x), maxi = max(x) ) ))

但它没有输出我的预期结果。我在sqldf和dplyr中做到了,但我的问题是:

如何仅使用R-Base函数执行此操作?

1 个答案:

答案 0 :(得分:2)

你非常接近。您的问题是aggregate使用by的公式界面而不是,而不是两者结合使用。如果你想从多个组的sql模仿GROUP BY,请将它们放在公式的右侧。

query<-as.data.frame(aggregate(. ~ Species+Sepal.Length, 
                           data = iris, 
                           FUN = function(x) c(min = min(x), maxi = max(x) ) ))

如果您只对一个特性感兴趣,请将其替换为公式左侧的.

query<-as.data.frame(aggregate(Sepal.Width ~ Species+Sepal.Length, 
                           data = iris, 
                           FUN = function(x) c(min = min(x), maxi = max(x) ) ))