我用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,name,value,sep,eol,skip):RS_sqlite_import:D:\ X17065382 \ Documents \ cad \ 2016_mar \ 2016_domicilio_mar.csv 198361预计1列数据但找到2
如果您对使用哪种包装不太挑剔,data.table
可以很好地满足您的需求
library(data.table)
file <- "D:\\X17065382\\Documents\\cad\\2016_mar\\2016_domicilio_mar.csv"
fread(file, nrows = 5)
就像Shinobi_Atobe说的那样,来自data.table的fread()
函数运行得非常好。如果您更喜欢使用基础R,您也可以使用:read.csv()
或read.csv2()
。
即:
read.csv2(file_path, nrows = 5)
那么“大文件”是什么意思? 1GB,10GB,100GB?
这适合我。
require(sqldf)
df <- read.csv.sql("C:\\your_path\\CSV1.csv", "select * from file where Name='Asher'")
df