用扩展名.sqlite导入r-和读取标题名称



我最近开始使用sqlite存储我的原始生物学数据(我有几种形式的原始数据输出,发现它是与同一试验有关的查询和链接表的非常有用的方法)。现在,我想从不同文件中删除原始数据,将其组合到数据框架中,然后对其进行处理(例如,我想将日期转换为朱利安的日期,并根据我已经拥有的日期创建新变量)。

此链接给出了一个很好的示例,说明如何组合同一数据库中的文件:

将用扩展名.sqlite导入r

我设法使用它来创建我想要的数据框架。但是(这是我缺乏经验显示的地方)结果框架没有可识别的标题:

> con <- dbConnect(drv, dbname="...PreliminaryFlightTrial.db")
> tables <- dbListTables(con)
> tables.excl <- tables[tables != "sqlite_sequence"]
> lDataFrames <- vector("list", length=length(tables.excl))
> for (i in seq(along=tables.excl)) {
+   lDataFrames[[i]] <- dbGetQuery(conn=con, statement=paste("SELECT * FROM '", tables.excl[[i]], "'", sep=""))
+ }
> names(lDataFrames)
NULL

如果有人能指出我的错误,我真的很感激。我确实尝试添加标题= t,并且代码运行,但我仍然无法访问这些名称:

for(i在seq(沿= tables.excl)){ dataframes [[i]] } 名称(数据框) null

我确实尝试过谷歌搜索,但没有走得很远 - 也许我正在搜索错误的条款?

非常感谢

无需读取R中的整个表,只是为了获取COLNAMES,您可以使用dbListFields而是

library(RSQLite)
drv <- dbDriver("SQLite")
con <- dbConnect(drv, dbname = ":memory:")
df1 <- data.frame(a = 1L, b = "hello")
df2 <- data.frame(c = 1:10, d = letters[1:10])
dbWriteTable(con, name = "df1", value = df1, row.names = FALSE)
dbWriteTable(con, name = "df2", value = df2, row.names = FALSE)
tables <- dbListTables(con)
lapply(tables, dbListFields, conn = con)
## [[1]]
## [1] "a" "b"
## [[2]]
## [1] "c" "d"

最新更新