将.db文件导入R

时间:2014-04-23 22:37:20

标签: r import

我正在尝试使用下面的代码导入.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"

1 个答案:

答案 0 :(得分: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可能是占位符目前)或
  • 如果您仅将此包用于db文件导入,则可以 编写自己的基于RSQLite的函数(例如,将其用作模板)