按照引用的问题,如果您使用的是 Windows,则在 ODBC 数据源管理器中创建用户 DSN 或系统 DSN ODBC 连接(在开始按钮的搜索框中搜索 ODBC)。然后在以下代码的第二行中使用该名称。哪里写着
"mydsn"
。
library(RODBC)
myconn <-odbcConnect("mydsn", uid="Rob", pwd="aardvark")
crimedat <- sqlFetch(myconn, "Crime")
pundat <- sqlQuery(myconn, "select * from Punishment")
close(myconn)
如果您尚未安装 Amazon Redshift ODBC 驱动程序,则必须先安装它们。我找到了一个链接这里。
我创建了一个类来封装连接。首先,您必须设置 odbc 数据源 64 位(取决于数据库驱动程序)。之后,我使用 setRefClass 创建一个新类:
library(odbc)
library(methods)
MyDatabaseConnection <-
setRefClass("MyDatabaseConnection", fields = list(conn = "ANY"))
MyDatabaseConnection$methods(
initialize = function() {
conn <<- dbConnect(
odbc(),
dsn = "your data source name from odbc",
uid = "your user",
pwd = "Your password")
)
},
finalize = function() {
if (is.null(conn) == FALSE) {
conn <<- NULL
}
},
query = function(sql) {
if (is.null(conn) == FALSE)
{
dataf <- dbGetQuery(conn, sql)
print(class(dataf))
return(dataf)
}
else
{
print("No connection")
}
}
)
您可以从此类创建一个对象
my_conn <- MyDatabaseConnection$new()
您可以运行返回 data.frame 的函数
data <- my_conn$query("SELECT * FROM TABLE")
本课程将帮助您更好地组织和整理您的代码。