在R中,如何通过过滤行来读取文件,基于条件的R

问题描述 投票:0回答:1

我使用R来达到csv。但我不希望整个数据集在内存中,因为数据集太大。但我需要根据一列的类别来读取行。

我想只读取col2='A'的行。

例子: col1 col2 col3 1 A 1000 2 B 2000 3 A 1000 4 A 2000 5 A 1000 6 B 2000

r read.csv
1个回答
1
投票

我们可以使用 sqldf

library(sqldf)
df1 <- read.csv.sql("file.csv", "select *, from file where col2 = 'A'", sep=",")

1
投票

你可以尝试使用 freaddata.table 包带 cmd 选项。从 文件:

一个预处理文件的shell命令,例如fread(cmd=paste("grep",word, "filename")。查看详情。

Shell命令。

fread接受shell命令以示方便。输入的命令会被运行,其输出会被写入tmpdir(默认为link{tempdir}())中的一个文件,fread会 "正常 "地应用这个文件。具体的细节取决于平台 -- 在 UNIX 环境下使用 system,否则使用 shell;参见 system。

因此,如果你运行这样的命令

library(data.table)
t <- fread(......., cmd=paste("grep","' A '","filename"), .....)

然后它过滤包含 A (A周围有空格),然后应用 fread 到的结果。

© www.soinside.com 2019 - 2024. All rights reserved.