RSQLite中的因素

前端之家收集整理的这篇文章主要介绍了RSQLite中的因素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直无法找到有关Rsqlite如何处理因素的文档.从快速测试(见下文)看,它们看起来像是转换为角色.

问题1:有没有办法将它们作为因素保存?我可以想到一些kludgy方式(主要涉及一个单独的表或.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],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)

解决方法

对我来说看起来很简单:因素是一个只有S和R知道的概念.完全停止.

因此,要将它们放入数据库并返回,您需要编写映射器.要么是简单化又要做所有as.character(并假设大多数DB后端将像R一样对哈希字符串进行哈希处理).或者以数据库为中心,将因子分成(无符号)(可能是短整数)整数和标签.

猜你在找的Sqlite相关文章