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

R, sqldf and avg for ratio average

为什么在 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 个物种中每个物种的比率的平均值。

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 一起使用,因为这正是您想要做的。