【问题标题】:Insert URL path into database using dbplyr使用 dbplyr 将 URL 路径插入数据库
【发布时间】:2017-11-01 03:12:59
【问题描述】:

我正在尝试使用

将 url 插入到 postgresql 数据库中
db_insert_into(con, "url", "http://www.google.com")

文件错误(fn, open = "r") : 无法打开连接 另外:警告信息: 在 file(fn, open = "r") 中: 无法打开文件“http://www.google.com”:没有这样的文件或目录

我该如何解决这个问题?

【问题讨论】:

  • 除了dbplyr,您还使用哪些包?
  • 如果con是数据库连接,那么"url"表名还是字段名?如果你改为 db_insert_into(con, "tablename", data.frame(url="http://www.google.com", stringsAsFactors=FALSE)) 会发生什么?
  • 效果很好。您能否发布您的解决方案以便我接受它

标签: r postgresql dbplyr


【解决方案1】:

您需要以某种方式同时指定表名和字段名。我猜"url" 是字段名,而表名在这里尚未定义。但是,坦率地说,采取解决方案并根据需要进行调整并不重要。

db_insert_into 的期望是 values(第三个参数)是 data.frame 或可以轻松转换为此类的东西。所以你可能可以这样做:

newdata <- data.frame(url = "http://www.google.com", stringsAsFactors = FALSE)
db_insert_into(con, "tablename", newdata)

如果你懒惰或玩代码高尔夫,你可以这样做:

db_insert_into(con, "tablename", list(url = "http://google.com"))

因为 dbplyr 周围的一些底层 S3 或 S4 方法有时会检查 if (!is.data.frame(values)) values &lt;- as.data.frame(values)。 (但我不一定会依赖这一点,通常最好是明确的。)

【讨论】:

    猜你喜欢
    • 2019-07-27
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    相关资源
    最近更新 更多