【发布时间】:2021-02-17 15:27:50
【问题描述】:
我在 SQL Server 数据库中有一个表,我想用 R 包中的 dbplyr/dplyr 来操作这个表。
library(odbc)
library(DBI)
library(tidyverse)
con <- DBI::dbConnect(odbc::odbc(),
Driver = "SQL Server",
Server = "xx.xxx.xxx.xxx",
Database = "stock",
UID = "userid",
PWD = "userpassword")
startday = 20150101
day = tbl(con, in_schema("dbo", "LogDay"))
我在连接到远程数据库后尝试了这个简单的 dplyr 功能,但只是失败并显示错误消息。
day %>%
mutate(ovnprofit = ifelse(stockCode == lead(stockCode,1),lead(priceOpen,1)/priceClose, NA)) %>%
select(logDate,stockCode, ovnprofit)
我该如何解决这个问题?
附言当我首先将“day”转换为 tibble 后应用 dplyr 函数时,它可以工作。但是,我想直接应用 dplyr 函数,而不是转换为 tibble,因为它既耗时又耗内存。
【问题讨论】:
-
不,
dplyr不能这样做。但dbplyr可能可以。 -
该代码与dbplyr一起应用,但它有同样的问题
标签: r sql-server dplyr dbplyr