加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

RSQLite中的因素

发布时间:2020-12-12 18:55:40 所属栏目:百科 来源:网络整理
导读:我一直无法找到有关RSQLite如何处理因素的文档.从快速测试(见下文)看,它们看起来像是转换为角色. 问题1:有没有办法将它们作为因素保存?我可以想到一些kludgy方式(主要涉及一个单独的表或.Rdata文件存储因子水平),但似乎应该有一个标准,因此更可维护的方式
我一直无法找到有关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一样对哈希字符串进行哈希处理).或者以数据库为中心,将因子分成(无符号)(可能是短整数)整数和标签.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读