使用R中的read.csv读取时按列值过滤

时间:2016-12-09 19:06:39

标签: r

我有一个巨大的数据集,其形式为txt文件,其值以半冒号分隔,并且接近2M行。我需要的数据只对应于第一列中的特定日期。样本输入如下所示:

Date;Time;Global_active_power;Global_reactive_power;Voltage;Global_intensity;Sub_metering_1;Sub_metering_2;Sub_metering_3
16/12/2006;17:24:00;4.216;0.418;234.840;18.400;0.000;1.000;17.000
16/12/2006;17:25:00;5.360;0.436;233.630;23.000;0.000;1.000;16.000
16/12/2006;17:26:00;5.374;0.498;233.290;23.000;0.000;2.000;17.000

请帮我过滤对应于两个日期的数据,例如1/2/2007和2007年2月2日

1 个答案:

答案 0 :(得分:8)

以下是数据导入过滤的一个很好的答案:https://stackoverflow.com/a/15967406/1152809

基本上,您需要在导入期间使用sqldf进行过滤。这就是你需要的东西:

triggered

但是,我还没有对此进行测试,因为您没有向我们提供dput您的数据。请看一下这篇关于R的<{3}}的帖子。

您的日期是字符串,因此他们可以使用上述内容。但是,如果您想使用BETWEEN之类的日期特定功能,则需要将其更改为正确的格式。这是一个样本:

install.packages("sqldf")
library(sqldf)
df <- read.csv.sql("sample.csv", "select *, from file where Date = '01/02/2007' or Date = '2/2/2007 ", sep=";")