R中未找到DataFrame对象错误
Posted
技术标签:
【中文标题】R中未找到DataFrame对象错误【英文标题】:DataFrame Object not found error in R 【发布时间】:2018-03-27 19:27:26 【问题描述】:我正在尝试将 MS Access 数据库连接到 R 并创建一个数据框并最终绘制一些数据,但我收到此错误,而我似乎正在正确地从表中导入数据。问题出在哪里?
控制台:
> # Load RODBC package
> library(RODBC)
>
> # Connect to Access db
> db_address <- "S:/LKF/Interdepartmental/DataGovernance/Tools/MM_Backend.accdb"
> db <- odbcConnectAccess(db_address)
Error in odbcConnectAccess(db_address) :
odbcConnectAccess is only usable with 32-bit Windows
>
>
> # Get data
> sql <- "select * from tblMaterials"
> df1 <- sqlQuery( db , sql)
Error in sqlQuery(db, sql) : first argument is not an open RODBC channel
代码:
# Load RODBC package
library (RODBC)
# Connect to Access db
db_address <- "S:/LKF/Interdepartmental/DataGovernance/Tools/MM_Backend.accdb"
db <- odbcConnectAccess(db_address)
# Get data
sql <- "select * from tblMaterials"
df1 <- sqlQuery( db , sql)
【问题讨论】:
您确定在此之前没有收到错误消息吗?Str (df1)
应该抛出一个错误,因为它应该是 str(df1)
并且返回什么?
不,整个代码表现得很奇怪。我觉得 R 中有一个错误。我可以删除 str(df1) 仍然得到同样的错误
当我重新运行代码时,有时我会收到此错误Error in sqlQuery(db, paste(sql)) : could not find function "sqlQuery"
嗯,“R 中存在错误”是一个相当广泛的主张。 R 并不是那种“有时”会出错的语言。你在尝试不同的机器还是什么?寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。
MrFlick 是真的想提供帮助,只是表达了(合理的)立场,即这不太可能是 R 中的错误的结果。找不到函数 sqlQuery
往往是因为你还没有加载 RODBC 包。 hist()
抛出一个错误说它找不到 df1
只会在 df1
真的不存在时发生,这意味着 str(df1)
也应该给出一个错误。你能在没有数据库的情况下重现这种行为吗?
【参考方案1】:
我通过这篇文章找到了答案:How to connect R with Access database in 64-bit Window?
我有一个 64 位的 Windows,我的办公产品都是 32 位的,所以我不得不将 R-32 位设置为默认值并更改连接定义:
odbcDriverConnect("Driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=S:/LKF/Interdepartmental/DataGovernance/Tools/MM_Backend.accdb")
【讨论】:
以上是关于R中未找到DataFrame对象错误的主要内容,如果未能解决你的问题,请参考以下文章