如何使用SQL将非常大的.csv中的单元格和行拉入R?

如何使用SQL将非常大的.csv中的单元格和行拉入R?,r,R,是否有一种方法可以使用SQL查询从csv读取一些数据并将其传递到数据帧中?i、 e.将聚合函数SQL查询的结果放入新的数据帧中?通常我会读入并修改/使用整个csv,但它的大小太大。如果你去阅读,你会发现具体的功能 读取.csv.sql读取sql筛选的文件 哪个 说明 将文件读入R,并使用sql语句对其进行筛选。R只处理过滤后的部分,以便容纳比R可以处理的文件大的文件 用法 read.csv.sql(file, sql = "select * from file", header = TRUE,

是否有一种方法可以使用SQL查询从csv读取一些数据并将其传递到数据帧中?i、 e.将聚合函数SQL查询的结果放入新的数据帧中?通常我会读入并修改/使用整个csv,但它的大小太大。

如果你去阅读,你会发现具体的功能

读取.csv.sql读取sql筛选的文件

哪个

说明 将文件读入R,并使用sql语句对其进行筛选。R只处理过滤后的部分,以便容纳比R可以处理的文件大的文件

用法

read.csv.sql(file, sql = "select * from file", header = TRUE, sep = ",",
row.names, eol, skip, filter, nrows, field.types,
colClasses, dbname = tempfile(), drv = "SQLite", ...)
read.csv2.sql(file, sql = "select * from file", header = TRUE, sep = ";",
row.names, eol, skip, filter, nrows, field.types,
colClasses, dbname = tempfile(), drv = "SQLite", ...)
参数

  • 文件路径或URL(以http://或ftp://开头)。如果使用了过滤器组件,并且没有文件要输入到过滤器,则可以省略文件、NULL、NA或“”
  • 包含sql语句的sql字符串。表示该文件的表应称为file
  • 标题如read.csv中所示
  • sep与read.csv中相同
  • 行名称与read.csv中的相同
  • 结束行的下线字符
  • 跳过输入文件中指定的行数。 如果指定,这应该是输入文件通过管道传输的shell/batch命令。对于read.csv2.sql,默认情况下在非Windows系统上为以下内容:tr。。这会将文件中的所有逗号转换为点。在Windows上提供了类似的功能,但要做到这一点,需要使用sqldf附带的vbscript文件来模拟tr命令
  • nrows用于确定列类型的行数。它默认为50。使用-1会使它使用所有行来确定列类型。很少需要这一论点
  • 字段类型一个列表,其名称为列名,内容为列的SQLite类型(而不是R类名)。指定这些类型可以提高速度。除非速度非常重要,否则通常不会使用此参数
  • colclass与read.csv中的相同
  • dbname与sqldf中相同,但默认值为tempfile()。指定NULL将把数据库放在内存中,这可能会提高速度,但会通过可用内存限制数据库的大小

  • 请参阅sqldf包中的
    read.csv.sql
    。感谢您的帮助。然而,我遇到了另一个问题,我注意到函数中的sql查询只是出于某种原因从csv返回头名称。你们知道为什么吗?也许是因为你们所指定的任何条件都不是真的,或者是参数的错误说明。eol=参数通常是问题的根源。回顾一下github的sqldf主页,它提供了很多例子,并彻底阅读了帮助页面。我已经阅读了帮助,在谷歌上搜索了很多,但仍然找不到答案。我所做的只是一个非常基本的read.csv.sql(file=“filepath”,sql=SELECT*FROM file),它似乎只从.csv文件中提取标题。我完全搞不懂eol=?