如何在R脚本中显式删除使用sqldf库创建的SQLite数据库

时间:2013-05-16 17:01:42

标签: r sqldf

我创建了一个R函数来执行子集,摘要,密度和绘图。我最初在RStudio中将子集​​分配给我的工作区,但我开始遇到内存限制。最新版本试图将汇总的观察计数存储在SQLite数据库中,而不是将子集导出为自己的数据帧。理论是这会占用更少的内存。为了执行此过程,我在我的函数中创建了一个新数据库,如下所示:

sqldf("attach 'mydb' as new")
sqldf("create table TotalsTbl as select 'resimrr' as name, count(*) as count from resimrr", dbname="mydb")
sqldf("insert into TotalsTbl select 'resimrrquan' as name, count(*) as count from resimrrquan", dbname="mydb")

然后我创建了几个表,并将它们填充为函数进程。最后,我将SQLite Tables的查询结果导出到数据帧,然后将其分配给我的工作区。

这提供了预期的结果:

sqldf("select * from TotalsTbl, dbname="mydb")
name count
1 resimrr 95517
2 resimrrquan 93928

现在的挑战是数据库是持久的。它是在第一次调用函数时创建的,它存在于我的Rsessions和我的工作区中,如果我再次运行该函数,则CREATE TABLE命令会失败,因为表已经存在。所以问题是如何在我的函数中完成后删除/清理'mydb'?

0 个答案:

没有答案