使用 dbplyr 将 URL 路径插入数据库
Insert URL path into database using dbplyr
我正在尝试使用
将 url 插入到 postgresql 数据库中
db_insert_into(con, "url", "http://www.google.com")
文件错误(fn, open = "r"): 无法打开连接
另外: 警告信息:
在文件(fn, open = "r") 中:
无法打开文件 'http:/www.google.com': 没有那个文件或目录
我该如何解决这个问题?
您需要以某种方式同时指定 table 名称和字段名称。我猜 "url"
是字段名称,而 table 名称在这里尚未定义。不过没关系,坦率地说,采取解决方案并根据需要进行调整。
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 <- as.data.frame(values)
。 (但我不一定会依赖它,通常最好是明确的。)
我正在尝试使用
将 url 插入到 postgresql 数据库中db_insert_into(con, "url", "http://www.google.com")
文件错误(fn, open = "r"): 无法打开连接 另外: 警告信息: 在文件(fn, open = "r") 中: 无法打开文件 'http:/www.google.com': 没有那个文件或目录
我该如何解决这个问题?
您需要以某种方式同时指定 table 名称和字段名称。我猜 "url"
是字段名称,而 table 名称在这里尚未定义。不过没关系,坦率地说,采取解决方案并根据需要进行调整。
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 <- as.data.frame(values)
。 (但我不一定会依赖它,通常最好是明确的。)