我一直无法找到有关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)