我有一个巨大的数据集,其形式为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
Run Code Online (Sandbox Code Playgroud)
请帮我过滤相当于两个日期的数据,比如1/2/2007和2007年2月2日
以下是数据导入过滤的好答案:https://stackoverflow.com/a/15967406/1152809
基本上,您需要在导入期间使用sqldf进行过滤.这就是你需要的东西:
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=";")
Run Code Online (Sandbox Code Playgroud)
但是,我没有测试过这一点,因为你没有给我们一个dput您的数据.看一下这篇文章,了解如何在R上做一篇好文章.
您的日期是字符串,因此他们可以使用上述内容.但是,如果您想使用BETWEEN之类的日期特定功能,则需要将它们更改为正确的格式.这是一个示例:
df <- read.csv.sql("sample.csv", "select *, strftime('%d/%m/%Y', Date) as DateFormated from file where DateFormatted >= 1/2/2007 and DateFormatted <= 2/2/2007 ", sep=";")
Run Code Online (Sandbox Code Playgroud)