gpt4 book ai didi

r - RSQLite 中的因素

转载 作者:IT王子 更新时间:2023-10-29 06:32:16 27 4
gpt4 key购买 nike

我一直找不到关于 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com