r - dplyr 可以访问 POSTGRES 9.3.5 VIEW 吗?

标签 r postgresql dplyr

我的 R (v. 3.1.1) dplyr (v. 0.3.0.2) 可以访问我的 POSTGRES 9.3.5 TABLE,但不能访问我在同一个数据库中的 VIEW。

dplyr 是否支持访问 POSTGRES 9.3.5 VIEW?

在 POSTGRES 中,我的 VIEW 定义如下:

centralstats=# \d "nicStats5"
           View "public.nicStats5"
    Column    |       Type        | Modifiers
--------------+-------------------+-----------
 affectedId   | integer           |
 timeRecorded | bigint            |
 dn           | character varying |
 bytesRx      | bigint            |

查看定义:

 SELECT "adaptorNICVnicStats"."affectedId",
    "adaptorNICVnicStats"."timeRecorded",
    "affectedId2Dn".dn,
    "adaptorNICVnicStats"."bytesRx"
   FROM "adaptorNICVnicStats",
    "affectedId2Dn"
  WHERE "adaptorNICVnicStats"."affectedId" = "affectedId2Dn"."affectedId";

IN R 可以从 dplyr 访问定义我的 VIEW 的所有数据库。 访问我的 VIEW 失败,如下所示:

centralstats <- src_postgres("centralstats",host = NULL, port = NULL,"postgres","Jmu2014!")
adaptorNICVnicStats <-tbl(centralstats, "adaptorNICVnicStats")
affectedId2Dn <-tbl(centralstats, "affectedId2Dn")
nicStats5 <-tbl(centralstats, "nicStats5")
## Fejl: Table nicStats5 not found in database  //* COMMENT: "Fejl" is the Danish word for ERROR

最佳答案

David、Greg,感谢您的反馈。

我实际上找到了解决我问题的方法,我可以让 dplyr 读取一个 VIEW 使用 dplyr 中的 build_sql 函数将“SQL 隧道”直接插入 PostgreSQL。

假设 nicStats6 是 PostgreSQL 中的一个表,然后我可以将它“导入”到 dplyr 中

My_nicStats6 <- tbl(centralstats, "nicStats6")

正如我最初的问题中所写,这不适用于 VIEW,因此当 nicStats5 是 PostgreSQL 中的 VIEW 时

My_nicStats5 <-tbl(centralstats, "nicStats5")

会导致错误“找不到表”

但是这个到 nicStats5 的“SQL 隧道”是有效的:

My_nicStats5 <- tbl(centralstats, build_sql('SELECT * FROM "nicStats5"'))

关于r - dplyr 可以访问 POSTGRES 9.3.5 VIEW 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755281/

相关文章:

r - 在绘制世界地图时使用与本初子午线不同的中心

c++ - 在 C++ 函数环境中删除输入 R 对象

r - 从 glm 中提取偏移项

r - 使用 apply 和 data.table 在 R 中自动进行 num-to-char 转换

r - Dplyr 警告 : `...` is not empty

r - 如何将带有日期列的 time.series 对象写入 R 中的 excel 文件?

java - Hibernate,按主键搜索返回表中的所有内容

arrays - PostgreSQL:有效地将数组列聚合为组的一部分

sql - PostgreSQL 函数通常比代码快吗?

r - 如何在 R 中创建总结缺失成像数据的 tibble