【发布时间】:2017-12-28 17:49:30
【问题描述】:
我有一个数据框 Date ,包含日期、时间和值:
Date Time Global_active_power
16/12/2006 17:24:00 4.216
16/12/2006 18:25:00 4.5
17/12/2006 17:25:00 4.52
18/12/2006 17:25:00 4.557
现在我想根据日期查找一行 - 例如日期 > 16/12/2006 的所有行。
这是我的代码:
Data$Date<- as.Date(Data$Date,"%dd%mm%yyyy" )
Data$Time<-strptime(Data$Time, "%h%m%s")
print(class(Data$Date))
print(class(Data$Time))
Data1<-subset(Data, (Date=="16/12/2006" ))
View(Data1)
Date 和 Time 的类是 factor 和 factor 但现在它们是 Date 和 "POSIXlt" "POSIXt" 。当我执行子集命令时,Data1 为空。
为什么?它应该包含前 2 个数据集。
【问题讨论】:
-
一方面,您的日期变量的格式不正确,
as.Date(Data$Date,"%dd%mm%yyyy")应该是as.Date(Data$Date,"%d/%m/%Y")请参阅?strptime中的示例。此外,当转换为 Date 变量时,您将需要使用data$Date == as.Date("2006-12-16" ),这是 R 转换后使用的格式。
标签: r date conditional-statements subset