将.db文件导入R

4
我试图使用以下代码导入一个 .db 文件,这个代码与包示例相同,但它提示找不到函数。有没有人知道如何导入一个 .db 文件?
library(ProjectTemplate)
db.reader('c3.db','/Users/xxx/Documents/c3.db','Data')

> db.reader('c3.db','/Users/xxx/Desktop/','Data')
Error: could not find function "db.reader"

如果找不到该函数,可能需要确保“ProjectTemplate”包处于活动状态。 - CCurtis
文档在“Value”部分中写道:“不返回任何值;此函数的调用是为了其副作用。”不确定这是否与问题有关。 - Rich Scriven
1个回答

2

我没有使用/安装这个包,但似乎该函数未被导出,因此用户无法使用。从 NAMESPACE 文件中可以看到。

# Generated by roxygen2 (4.0.0): do not edit by hand

export(cache)
export(cache.project)
export(create.project)
export(get.project)
export(load.project)
export(reload.project)
export(require.package)
export(run.project)
export(show.project)
export(stub.tests)
export(test.project)
export(translate.dcf)

毕竟,例子就是这样。
## Not run: db.reader('example.db', 'data/example.db', 'example')

然而,该功能

db.reader <- function(data.file, filename, variable.name)
{
  require.package('RSQLite')

  sqlite.driver <- dbDriver("SQLite")
  connection <- dbConnect(sqlite.driver,
                          dbname = filename)

  tables <- dbListTables(connection)
  for (table in tables)
  {
    message(paste('  Loading table:', table))

    data.parcel <- dbReadTable(connection,
                               table,
                               row.names = NULL)

    assign(clean.variable.name(table),
           data.parcel,
           envir = .TargetEnv)
  }

  disconnect.success <- dbDisconnect(connection)
  if (! disconnect.success)
  {
    warning(paste('Unable to disconnect from database:', filename))
  }
}

您可以直接尝试使用它(从工作区),但是在我的看法中,最好的方法是:
  • 最终向维护者询问(目前为什么无法运行?除了NAMESPACE生成中的错误外,我认为db.reader目前可能只是一个占位符)或
  • 如果您仅用于数据库文件导入,则可以编写自己的基于RSQLite的函数(例如使用此作为模板)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接