R,sqldf和avg用于比率平均值

时间:2017-07-05 21:09:59

标签: sql r sqldf

为什么在R?

中使用sqldf时,这两个命令会产生不同的结果
sqldf('select species,
    avg([Petal.Width]/[Petal.Length]) 
    as petalratio from iris group by species')

sqldf('select species,
    ([Petal.Width]/[Petal.Length]) 
    as petalratio from iris group by species')

目标是找到3个物种中每个物种的平均比率。

1 个答案:

答案 0 :(得分:2)

select species,
avg([Petal.Width]/[Petal.Length]) as petalratio 
from iris
group by species

当您使用聚合函数avg时,此查询输出每个物种的平均值。

select species,
([Petal.Width]/[Petal.Length]) as petalratio 
from iris
group by species

此查询随机输出每个物种一行,因为您没有使用聚合函数。在大多数数据库中都不允许这样做,但SQLite允许这样做,这是sqldf使用的默认数据库。

您应该使用avg的第一个查询,因为您正在尝试这样做。