使用sqldf读取csv

时间:2019-03-26 14:52:09

标签: r sqldf

我在用R读取大型的csv文件时遇到了一些麻烦,因此我试图使用sqldf包从csv中仅读取某些列或行。

我尝试过:

test <- read.csv.sql("D:\\X17065382\\Documents\\cad\\2016_mar\\2016_domicilio_mar.csv", sql = "select * from file  limit 5", header = TRUE, sep = ",", eol = "\n")

但是我遇到了这个问题:

  

connection_import_file中的错误(conn @ ptr,名称,值,sep,eol,跳过):RS_sqlite_import:D:\ X17065382 \ Documents \ cad \ 2016_mar \ 2016_domicilio_mar.csv行198361预期有1列数据,但找到了2

3 个答案:

答案 0 :(得分:0)

如果您对所使用的软件包不太挑剔,data.table可以很好地满足您的需求

library(data.table)

file <- "D:\\X17065382\\Documents\\cad\\2016_mar\\2016_domicilio_mar.csv"

fread(file, nrows = 5)

答案 1 :(得分:0)

就像 Shinobi_Atobe 所说的那样,data.table中的fread()函数运行得很好。如果您想使用基数R,也可以使用:read.csv()read.csv2()

即:

read.csv2(file_path, nrows = 5)

“大文件”又是什么意思? 1GB,10GB,100GB?

答案 2 :(得分:0)

这对我有用。

require(sqldf)
df <- read.csv.sql("C:\\your_path\\CSV1.csv", "select * from file where Name='Asher'")
df