r - 从 R 中的 SQLite 中的表中收集()
问题描述
我正在尝试使用collect()
函数 fromdplyr
来查询comp_fleet
SQLite 中的表 ()。以下代码有效:
Cposns <- tbl(db_con,"comp_fleet") %>%
arrange(mmsi, desc(timestamp))%>%
dplyr::filter(!is.na(lat)) %>% collect()
但是,当我尝试时top_n()
,出现错误:
Cposns <- tbl(db_con,"comp_fleet") %>%
arrange(mmsi, desc(timestamp))%>%
dplyr::filter(!is.na(lat)) %>%
top_n(1,timestamp) %>% collect()
Error: Window function `rank()` is not supported by this database
由于这是一个巨大的表,我希望在收集之前在数据库中执行所有聚合功能。之前有没有使用该top_n()
功能的方法collect()
?或者等价的东西?
解决方案
感谢@Scarabee,这是有效的:
Cposns <- tbl(db_con,"comp_fleet") %>%
arrange(mmsi, desc(timestamp))%>%
dplyr::filter(!is.na(lat)) %>% group_by(mmsi) %>%
do(head(., n = 1)) %>% collect()
推荐阅读
- c++ - 密码学。获得最差的加密结果
- android - 如何在灯光模式下使用flutter_tex(Flutter)?
- node.js - 如果网站未运行,nodemailer 不会发送电子邮件
- python - 我们如何在桑基图中格式化数字并在图表之外设置标签?
- javascript - mongoose findbyId() 显示“路径”参数必须是字符串类型。收到模型实例'
- perl - 迭代多级哈希
- xml - 使用 PowerShell 和 XML 分别返回 ID 以形成每条记录的正确 URL
- c# - 无隐式引用转换
- python - 从Python中的文件列表生成文件树字典?
- forms - 从 URL 填写表格