如何使用RSqlite将CSV导入sqlite?

时间:2010-12-02 08:16:22

标签: sqlite r import

作为问题,我发现我可以在sqlite shell中使用.import,但似乎它在R环境中不起作用,有什么建议吗?

2 个答案:

答案 0 :(得分:19)

您可以在read.csv.sql包中使用sqldf。只读一行代码。假设您要创建一个新数据库,测试db,然后将文件读入其中,请尝试:

# create a test file
write.table(iris, "iris.csv", sep = ",", quote = FALSE, row.names = FALSE)

# create an empty database.
# can skip this step if database already exists.
sqldf("attach testingdb as new")
# or: cat(file = "testingdb")

# read into table called iris in the testingdb sqlite database
library(sqldf)
read.csv.sql("iris.csv", sql = "create table main.iris as select * from file", 
  dbname = "testingdb")

# look at first three lines
sqldf("select * from main.iris limit 3", dbname = "testingdb")

以上使用sqldf,它使用RSQLite。您也可以直接使用RSQLite。请参阅RSQLite中的?dbWriteTable。请注意,如果直接使用dbWriteTable sqldf将自动处理(通常),则可能会出现行结尾问题。

如果您打算在将文件读入数据库后立即将文件读入R并且之后您真的不需要数据库,那么请参阅:

http://code.google.com/p/sqldf/#Example_13._read.csv.sql_and_read.csv2.sql

答案 1 :(得分:2)

我倾向于使用sqldf包:Quickly reading very large tables as dataframes in R

请记住,在上面的示例中,我将csv读入temp sqlite db。你显然需要改变这一点。