- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我一直找不到关于 RSQLite 如何处理因子的文档。从快速测试(见下文)来看,它们似乎已转换为字符。
问题一:有没有办法把它们作为因子保存下来?我可以想到一些笨拙的方法(主要涉及一个单独的表或存储因子水平的 .Rdata
文件),但似乎应该有一个标准的,因此更易于维护的方法来执行此操作。
问题 2:如果不是 RSQLite,是否比其他一些数据库或类似数据库的包好?我在这里的用例很简单:附加一堆大的(2-5mm 行 X 550 列)data.frames,因为每个都被处理以构建一个巨大的数据库,然后能够只选择我想要从该数据库中带来的行进入 data.table
并继续工作。
library(RSQLite)
# Create
db <- dbConnect( SQLite(), dbname="~/temp/test.sqlite" )
# Write test
set.seed(1)
testDat <- data.frame(x=runif(1000),y=runif(1000),g1=sample(letters[1:10],1000,replace=TRUE),g2=rep(letters[1:10],each=100),g3=factor( sample(letters[1:10],1000,replace=TRUE) ))
if(dbExistsTable(db,"test")) dbRemoveTable(db,"test")
dbWriteTable( conn = db, name = "test", value = testDat, row.names=FALSE )
# Read test
testRecovery <- dbGetQuery(db, "SELECT * FROM test")
testSelection <- dbGetQuery(db, "SELECT * FROM test WHERE g3=='h' OR g3=='e' ")
# Close
dbDisconnect(db)
最佳答案
对我来说它看起来很简单:factor
是一个只有 S 和 R 知道的概念。句号。
因此,要将它们放入数据库并返回,您需要编写映射器。要么简单化,把所有事情都做成 as.character
(并假设大多数数据库后端会像 R 一样对字符串进行哈希处理)。或者以数据库为中心并将因子拆分为(无符号)(可能是短的)整数和标签。
关于r - RSQLite 中的因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19766588/
我正在查看 documentation of RSQLite .我创建了一个数据库并使用 推送了一些数据 mydb = 150) dbSendQuery(mydb, paste("UPDATE mtc
我刚刚开始涉足 sqlite 的世界,主要是通过 R 的接口(interface)包“RSQLite”。 但是,似乎在处理 sqlite 数据库时让计算机进入休眠状态使其锁定,然后尝试关闭连接不会做任
我完全有可能忽略了一些东西,但是在使用 RSQLite 包时,是否仍然可以在 R 脚本中利用特殊字符串“:memory:”来加速数据检索? 最佳答案 是的,仍然可以使用特殊字符串 :memory: .
我经常使用具有 >10,000 列的大型 CSV 文件 (>50GB)。我正在考虑将信息读入 RSQLite这样我就可以轻松进行查询和子集化。 问题 SQLite 在单个 SQL 中有 2000 个字
我正在尝试使用 RSQLite 从我的数据库中读取表格。所有表的列名都带有“.”。 例如:我的测试表有2列:index, first.name 如何编写查询来过滤带有名字列的测试表: 我的代码是: d
我有一个包含 x、y 和 z 列的 sqlite 表。 x 和 y 是唯一键,z 是值。 我想用 R 向这个表中插入数据。如果插入重复记录 - 基于 x 和 y 字段,我希望 sqlite 拒绝该记录
我一直找不到关于 RSQLite 如何处理因子的文档。从快速测试(见下文)来看,它们似乎已转换为字符。 问题一:有没有办法把它们作为因子保存下来?我可以想到一些笨拙的方法(主要涉及一个单独的表或存储因
如何使用 RSQLite 编写带有日期的 SQL 查询。下面是一个例子。 dbGetQuery不返回任何行。 require(RSQLite) require(ggplot2) data(presid
我正在尝试使用 RSQLite 包(我也尝试过 sqldf 包)将一个大的 csv 文件加载到 SQL lite 数据库中。该文件包含所有英国邮政编码和它们的各种查找值。 我想避免将其加载到 R 中,
在使用 RSQLite 1.0.0 包从 SQLite 3 数据库中提取数据时,我遇到了一个奇怪的现象。除日期时间值的年份外,所有内容都被截断! 看一个例子: 下面我正在提取 DATETIME 列:
我有一个 SQLite 数据库,我使用 R 的 RSQLite 包进行查询。我有一个分类向量,我想通过它来过滤我的查询,这样我的查询看起来像这样: dbGetQuery(mydb,
所以我试图访问我的数据库文件但没有成功。这是我的脚本: library(DBI) library(sqldf) drv <- dbDriver("SQLite") con <- dbConnect(d
使用 RSQLite 构建 SQLite 数据库我想一次发送多个语句 - 这可能吗? 为什么这些不起作用: sql <- readLines("createtables.sql") dbSendQue
我在 R 中使用 RSQLITE 来构建数据库并执行“JOIN”操作并使用以下方法提取行: res<-dbSendQuery(con," SELECT DISTINCT all_transcr
我已经开始使用 RSQLite 和 dplyr 来有效地处理大型数据集。但是,我一直无法协调如何让 RSQLite 格式化日期或这里有哪些最佳实践。下面的例子应该说明这个过程对我来说在哪里失败: li
我有一个包含各种 token 和频率计数的数据库。当我尝试使用 RSQLite 从 R 中检索这些时,我得到的负数很低,因此可能存在缓冲区溢出问题。如果我在 say sqliteman 中打开数据库并
如何在 dbGetQuery() 的 bind.data 参数中为像 这样的 SQL 语句传递标量和一组值 select * from tst where x = ? and y in (?) 这是我
在 SQLite 中,我想找到我用 GROUP BY 定义的(记录的)系列的一阶差分的标准偏差.我的数据提供者给了我一个每日价格序列,但我想找到年化的每日波动率(每日返回的标准差——该系列的自然对数的
使用RSQLite在 RStudio 中运行大型查询时遇到以下错误 Error in rsqlite_send_query(conn@ptr, statement) : database or
我正在构建一个供内部使用的包,并尝试从用户那里抽象出所有可能的数据库交互。我需要在函数内连接到数据库并断开与数据库的连接(我认为)。但是,断开连接不起作用。 `my_func = function()
我是一名优秀的程序员,十分优秀!