0

我最近开始使用 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

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

for (i in seq(along=tables.excl)) { + DataFrames[[i]] <- dbGetQuery(conn=con, statement=paste("SELECT * FROM '", tables.excl[[i]], " '", sep="",header=T)) + } 名称(DataFrames) NULL

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

非常感谢

4

1 回答 1

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"
于 2014-02-05T19:15:08.297 回答