0

我只想从表中读取 3 列。现在我正在做一些我认为效率很低的事情

library(dplyr, quietly = T, warn.conflicts = F)
library(RSQLite, quietly = T) 
db <- dbConnect( SQLite() , "SIPP08.db" )
dbListTables(db) 
w13 <- dbReadTable( db , 'w13' )
dbDisconnect(db)

df = w13 %>%
  select(ssuid, epppnum,ejbind1)

有没有更好的方法来做到这一点?

谢谢!


我也尝试过像这样使用 dplyr

my_db <- src_sqlite(path = "SIPP08.db")
w13 <- tbl(my_db, "w13")
df = w13 %>%
  select(ssuid, epppnum,ejbind1)

但它不起作用

4

1 回答 1

3

最好直接查询 SQLite DB,类似这些

library(dplyr)
library(RSQLite)

db <- src_sqlite("SIPP08.db")
df <- tbl(db, sql("SELECT ssuid, epppnum, ejbind1 from wt13"))

我不知道为什么你有一个list,但你可以使用这个DBI包并RSQLite拥有一个data.frame

library(DBI)
db <- dbConnect(SQLite() , "SIPP08.db")
df <- dbGetQuery(db, "SELECT ssuid, epppnum, ejbind1 from wt13")

我没有你的数据,但第一个代码使用玩具数据集对我有用。

于 2015-03-25T14:32:44.993 回答