我希望每个人都做得很好我正在尝试将数据库文件读取/导入到扩展名为.db的R,但我无法这样做。我搜索相关材料但无法找到答案。数据文件是关于维基百科的文章内容,是一个非常庞大的文件。所以任何帮助都会非常有帮助。 我也试过这个方法 Import .db file into R 但是我得到了同样的错误,因为我是R的新手,所以很难理解我提出的答案。
library(project template)
x<-db.reader("wiki.db,"H:\\wiki.db","wiki.db")
Error: could not find function "db.reader"
正如上面的帖子中所建议我将答案运用到
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))
}
}
但现在我收到错误
Loading table: FArevisionContentPlain
Error in assign(clean.variable.name(table), data.parcel, envir = .TargetEnv)
could not find function "clean.variable.name"
任何帮助都将受到高度赞赏,对我非常有帮助。
答案 0 :(得分:0)
clean.variable.name
是ProjectManager
包中的一个函数,用于清除指定数据库中表的文件名。例如,它将名为data_table
的数据库表转换为data.table
。
.TargetEnv
是ProjectManager
包中指向.GlobalVariable
的变量(请参阅here)。因此,如果您手动将db.reader
放在代码中,则无法找到此变量。
要防止出现这些错误,您可以忽略需要使用clean.variable.name
,并指定您自己的环境变量:
e <- new.env()
custom.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(table, data.parcel, envir = e)
}
disconnect.success <- dbDisconnect(connection)
if (! disconnect.success) {
warning(paste('Unable to disconnect from database:', filename))
}
}
然后,如果数据库表名为data_table
,则可以在e$data_table
访问导入的数据库表。