R、 比率平均值的sqldf和avg
为什么在R中使用R、 比率平均值的sqldf和avg,sql,r,sqldf,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') 我们的目标
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中是允许的,SQLite是默认数据库使用的
您应该将第一个查询与avg
一起使用,因为这正是您要做的
当您使用聚合函数avg
时,此查询输出每个物种的平均值
select species,
([Petal.Width]/[Petal.Length]) as petalratio
from iris
group by species
由于您没有使用聚合函数,此查询会随机为每个物种输出一行。这在大多数数据库中是不允许的,但在SQLite中是允许的,SQLite是默认数据库使用的
您应该将第一个查询与
avg
一起使用,因为您正试图这样做。底部查询没有失败是一个奇迹。不可靠的结果。其他RDBMS也会明白这一点。但是当然,MySQL只允许关闭的的