问题描述
我正在尝试查询数据库并使用 dbplyr
计算加权平均值。我用 sum
和 *
和 /
把它写出来,sql 查询似乎是正确的(例如跟随 Calculate weighted average in single query)但是查询没有通过并给我一个错误当我尝试 collect
时。我不知道“添加显式类型转换”是什么意思,也不知道如何使用 dbplyr
做到这一点。
LINE 1: ... TYPE","REGISTRATION TYPE","SEGMENT",SUM("VIO" * "EPA MIL...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
我还查看了 https://github.com/tidyverse/dbplyr/issues/376 ,其中指出使用 sum 和 * 和 / 应该可以工作,因为 R
的 weighted.mean
不会被翻译为 {{ 1}}。与 dbplyr
处的更简单示例相比,我看到我的名字都用 " 引用 - 这会导致问题吗?
baby_db %>% summarize(wavg_prop = sum(prop * n) / sum(n))
解决方法
案例已结束-“EPA MILEAGE COMBINED”列是字符串而不是数字”-谢谢@Blue Star