我在用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 >
答案 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