为什么在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个物种中每个物种的平均比率。
答案 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
的第一个查询,因为您正在尝试这样做。