将带有扩展名.sqlite的FIles导入R - 并读取标题名称

时间:2014-02-05 18:54:53

标签: sql r rsqlite

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

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

Importing FIles with Extension .sqlite into 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

如果有人能指出我的错误,我会非常感激。我确实尝试添加header = T并运行代码,但我仍然无法访问名称:

  

for(i in seq(along = tables.excl)){   + DataFrames [[i]]&lt; - dbGetQuery(conn = con,statement = paste(“SELECT * FROM'”,tables.excl [[i]],“'”,sep =“”,header = T))   +}   名字(DataFrames)   NULL

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

非常感谢

1 个答案:

答案 0 :(得分:0)

无需阅读R中的整个表格,只需获取您可以使用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"
相关问题