我的数据框类似于:
x <- c(1:6)
y <- c("06/01/13 16:00:00",
"06/01/13 16:00:00",
"06/03/13 20:00:00",
"06/03/13 20:00:00",
"06/07/13 20:00:00",
"06/08/13 20:00:00")
dfrm <- data.frame(x,y)
dfrm
x y
1 06/01/13 16:00:00
2 06/01/13 16:00:00
3 06/03/13 20:00:00
4 06/03/13 20:00:00
5 06/07/13 20:00:00
6 06/08/13 20:00:00
我想让你成为一个chron对象:
dfrm$y <- as.chron(dfrm$y, "%m/%d/%y %H:%M")
然后我有一个日期向量:
intensives <- c("06/01/13", "06/07/13")
然后我希望将数据框“dfrm”按“密集”向量中的日期进行子集化。 我会怎么做:
subset(dfrm, y==dates(intensives))
或
subset(dfrm, y %in% dates(intensives))
但两者都给我一个空结果。
答案 0 :(得分:2)
注意:在大多数人的设置中,stringAsFactors = TRUE,转换为chron会失败。他们需要这样做:
dfrm$y <- as.chron(as.character(dfrm$y), "%m/%d/%y %H:%M")
日期对象不是chron-objects,但chron对象可以用dates
函数强制
subset(dfrm, dates(y) %in% dates(intensives))
x y
1 1 (06/01/13 16:00:00)
2 2 (06/01/13 16:00:00)
5 5 (06/07/13 20:00:00)
答案 1 :(得分:1)
那是因为您将日期时间与日期进行比较。
改为subset(dfrm, dates(y) %in% dates(intensives))
。
使用==
的第一个子集将无法工作,无论数据类型如何。