RODBC文档表明这是可能的,但我不确定如何使用此软件包从Microsoft Access(新的.accdb
格式)文件中读取数据到R(在Debian GNU / Linux上)。文档谈到了驱动程序,但我不太明白如何查看已安装哪些驱动程序,特别是是否有为我安装的驱动程序可以访问那些.accdb
文件。
您使用什么代码来读取.accdb
文件中的数据?请指出您所在的平台以及是否需要安装特殊驱动程序。
RODBC文档表明这是可能的,但我不确定如何使用此软件包从Microsoft Access(新的.accdb
格式)文件中读取数据到R(在Debian GNU / Linux上)。文档谈到了驱动程序,但我不太明白如何查看已安装哪些驱动程序,特别是是否有为我安装的驱动程序可以访问那些.accdb
文件。
您使用什么代码来读取.accdb
文件中的数据?请指出您所在的平台以及是否需要安装特殊驱动程序。
library(RODBC) #loads the RODBC package
dta <- odbcConnectAccess2007("C:/Users/JohnDoe/Desktop/foo.accdb") #specifies the file path
df1 <- sqlFetch(dta, "bar") #loads the table called 'bar' in the original Access file
df2 <- sqlFetch(dta, "bin") #loads the table called 'bin' in the original Access file
RODBC
库中没有看到这个函数。 - ZafarRODBC
(packageVersion("RODBC")
)?在 1.3.15
版本中,这两个函数 (odbcConnectAccess2007()
和 sqlFetch()
) 在我的电脑上都可以使用。 - coipRODBC
,它仍然具有所有这些可用的功能。 - coip然而,我不知道是否有任何免费(自由和/或啤酒)的Linux MS Access ODBC驱动程序。Easysoft销售其中一种,但价格不菲。其他供应商也可能提供类似的产品,但我还没有去查看。
使用Windows机器将您的ACCDB导出到R可以使用的格式可能更容易。或者在Windows上运行R,而不是在Linux上运行。
c:\windows\sysWOW64\odbcad32.exe
)。请注意,此方法不适用于GNU / Linux。如下所述,运行时仅限于Windows。关于代码,您可能会从odbcConnect(dsn, uid = "", pwd = "", ...)
开始,并且文档可以帮助您了解细节。ODBC是一种“即插即用”的系统,用于连接不同的组件。
RODBC允许您将ODBC提供程序中的内容导入R。但您仍需要所涉及的数据库系统的(缺乏更好的词语)ODBC导出驱动程序。您需要在操作系统上安装此驱动程序---因此,我认为使用Access-into-Linux组合您将无法成功。这只适用于Windows。
人们已经成功使用FreeTDS驱动程序(用于Sybase底层的TDS协议以及通过早期许可证也支持MS-SQL)来访问SQL Server,但通常需要费力才能使其正常工作。
#Package
library(RODBC)
#Defining the path
datab<-file.path("Main_File.accdb")
channel<-odbcConnectAccess2007(datab)
#reading the individual files inside the Main
table<-sqlFetch(Channel,"File_1")
这将从Main_File中的"File_1"获取数据。
但上述代码不支持UTF编码。
library(RODBC)
db<-file.path("student.accdb")
channel<-odbcConnectAccess2007(db)
data<-sqlFetch(channel,"stud")
data
ID Name M1 M2 M3 M4 M5 Result
1 7 Radha 85 65 92 50 62 Pass
2 8 Reka 75 85 96 75 85 Pass
除了直接访问,另一种选择可能是通过 MS Access 方便地导出数据。最近的 MS Access 至少允许保存各种导出步骤。然后,您可以相对快速地运行各种查询/表的导出。
我知道这并没有回答问题,但如果您无法运行 RODBC,则可能是一个解决方法。
我的解决方案(我发现最简单的):
注意:它仅适用于Windows,而不适用于Linux。个人建议在Xubuntu中使用Windows作为Virtual Box客户端。