R - 如何在两个特定日期之间对表进行子集化?

时间:2014-09-05 17:39:33

标签: r

我的每小时数据值为8年,我希望将特定年份内的所有值进行分组。例如,2007年的数据集,2008年的另一个数据集,依此类推。目前我对日期格式有很多问题,因为当我具体说明一个时间段时,我会得到另一个日期。

这是我的表:LValley,这就是我的尝试:

LValley <- read.table("C:/LValley.txt", header=TRUE, dec = ",", sep="\t")

year2007 <- subset(LValley, date > as.Date("01.01.2007 01:00", "%d.%m.%Y %H:%M") & date < as.Date("01.02.2008 01:00", "%d.%m.%Y %H:%M"))

但它又返回了另一个日期,我想要完整的2007年所有数据。

我也使用了这个例子的功能,我得到了相同的结果#Subset a dataframe between 2 dates

mydatefunc <- function(x,y){LValley[LValley$date >= x & LValley$date <= y,]}

DATE1 <- as.Date("01.01.2007 01:00", "%d.%m.%Y %H:%M")
DATE2 <- as.Date("01.01.2008 00:00", "%d.%m.%Y %H:%M")

Test2007 <- mydatefunc(DATE1,DATE2) 

我非常感谢你的帮助,

亲切的问候, 达尔文

1 个答案:

答案 0 :(得分:1)

您需要将文件中的date列转换为date类。例如:

 LValley <- read.table("LValley.txt", header=TRUE,dec=",", sep="\t", stringsAsFactors=FALSE)

  date1 <- as.Date(LValley$date, "%d.%m.%Y %H:%M")
  Test2007 <- subset(LValley, date1>=DATE1 & date1 <=DATE2)
  dim(Test2007)
   #[1] 6249    4