Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R、 比率平均值的sqldf和avg_Sql_R_Sqldf - Fatal编程技术网

R、 比率平均值的sqldf和avg

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') 我们的目标

为什么在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中是允许的,SQLite是默认数据库使用的

您应该将第一个查询与
avg
一起使用,因为这正是您要做的

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

select species,
([Petal.Width]/[Petal.Length]) as petalratio 
from iris
group by species
由于您没有使用聚合函数,此查询会随机为每个物种输出一行。这在大多数数据库中是不允许的,但在SQLite中是允许的,SQLite是默认数据库使用的


您应该将第一个查询与
avg
一起使用,因为您正试图这样做。

底部查询没有失败是一个奇迹。不可靠的结果。其他RDBMS也会明白这一点。但是当然,MySQL只允许关闭