如何根据r中的日期范围对数据进行子集划分?
我有一个大的.txt数据文件,需要根据日期范围进行子集设置如何根据r中的日期范围对数据进行子集划分?,r,datetime,subset,R,Datetime,Subset,我有一个大的.txt数据文件,需要根据日期范围进行子集设置 head(newFile) Date Time Global_active_power Global_reactive_power Voltage Global_intensity 1 16/12/2006 17:24:00 4.216 0.418 234.84 18.4 2 16/12/2006 17:25:00
head(newFile)
Date Time Global_active_power Global_reactive_power Voltage Global_intensity
1 16/12/2006 17:24:00 4.216 0.418 234.84 18.4
2 16/12/2006 17:25:00 5.360 0.436 233.63 23.0
3 16/12/2006 17:26:00 5.374 0.498 233.29 23.0
4 16/12/2006 17:27:00 5.388 0.502 233.74 23.0
5 16/12/2006 17:28:00 3.666 0.528 235.68 15.8
6 16/12/2006 17:29:00 3.520 0.522 235.02 15.0
Sub_metering_1 Sub_metering_2 Sub_metering_3
1 0 1 17
2 0 1 16
3 0 2 17
4 0 1 17
5 0 1 17
6 0 2 17
我只需要使用日期2007-02-01和2007-02-02的数据
我想我需要使用strtime()
和as.Date()
函数将日期和时间变量转换为R中的日期/时间类,但我不清楚如何实现
最简单/最干净的方法是什么?您可以使用lubridate库,此代码只是示例,我对您的数据做了一些更改
library(lubridate)
> df <- read.table("test2.txt", header=TRUE)
> df
Date Time Global_active_power Global_reactive_power Voltage
1 16/12/2006 17:24:00 4.216 0.418 234.84
2 16/12/2006 17:25:00 5.360 0.436 233.63
3 16/12/2007 17:26:00 5.374 0.498 233.29
4 16/12/2007 17:27:00 5.388 0.502 233.74
5 16/12/2006 17:28:00 3.666 0.528 235.68
Global_intensity
1 18.4
2 23.0
3 23.0
4 23.0
5 15.8
> date1 = dmy("04/06/2007")
> date2 = dmy("04/06/2009")
> with( df , df[ dmy(df$Date) >= date1 ,dmy(df$Date) <= date2 ] )
Date Time Global_active_power Global_reactive_power Voltage
3 16/12/2007 17:26:00 5.374 0.498 233.29
4 16/12/2007 17:27:00 5.388 0.502 233.74
Global_intensity
3 23
4 23
>
库(lubridate)
>df-df
日期时间全局有功功率全局无功电压
1 16/12/2006 17:24:00 4.216 0.418 234.84
2 16/12/2006 17:25:00 5.360 0.436 233.63
3 16/12/2007 17:26:00 5.374 0.498 233.29
4 16/12/2007 17:27:00 5.388 0.502 233.74
5 16/12/2006 17:28:00 3.666 0.528 235.68
全球气候强度
1 18.4
2 23.0
3 23.0
4 23.0
5 15.8
>日期1=dmy(“2007年6月4日”)
>日期2=dmy(2009年6月4日)
>带(df,df[dmy(df$Date)>=date1,dmy(df$Date)
这可能是重复的,但您可以这样做:newFile$Date这确实很简单。谢谢您,大卫。