首页 > 解决方案 > 日期格式为“01.01.2009 08:00:00, 01.01.2009 9:00:00, ...”的子集数据

问题描述

我目前正在尝试从我的数据集中对数据进行子集化。我用过dputstr所以你可以看到我在用什么:

dput

structure(list(Date = structure(1:10, .Label = c("01.01.2009 00:00:00", 
"01.01.2009 01:00:00", "01.01.2009 02:00:00", "01.01.2009 03:00:00", 
"01.01.2009 04:00:00", "01.01.2009 05:00:00", "01.01.2009 06:00:00", 
"01.01.2009 07:00:00", "01.01.2009 08:00:00", "01.01.2009 09:00:00"
), class = "factor"), SWC = c(NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN)), row.names = c(NA, 10L), class = "data.frame")

str

'data.frame':   8756 obs. of  2 variables:
 $ Date: Factor w/ 96408 levels "01.01.2009 00:00:00",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ SWC : num  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...

如您所见,我的日期格式为“DD MM YY HH MM SS”。为了对我的数据进行子集化,我尝试使用该subset()函数(见下文)。

Mois2009_2 <- subset(Mois1$Date <= "31.12.2009 23:00:00") 

但我收到以下错误:

In Ops.factor(Mois1$Date, "31.12.2009 23:00:00") :
      ‘&lt;=’ not meaningful for factors

我查找了错误,发现我必须使用转换我的日期

as.Date(Mois1$Date)

这产生了另一个错误,它说:

Character string is not in a unique standard format.

我刚开始使用 R,所以我很感激一些帮助!

标签: rdatesubset

解决方案


您可以按以下方式解决它:

Mois1 <- structure(list(Date = structure(1:10, .Label = c("01.01.2009 00:00:00", 
                   "01.01.2009 01:00:00", "01.01.2009 02:00:00", "01.01.2009 03:00:00", 
                   "01.01.2009 04:00:00", "01.01.2009 05:00:00", "01.01.2009 06:00:00", 
                   "01.01.2009 07:00:00", "01.01.2009 08:00:00", "01.01.2009 09:00:00"
                   ), class = "factor"), SWC = c(NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
                   NaN, NaN, NaN)), row.names = c(NA, 10L), class = "data.frame")

Mois1$Date <- as.Date(Mois1$Date, format = "%d.%m.%Y %H:%M:%S")
Mois2009_2 <- subset(Mois1, Date <= "2009-12-31 23:00:00")

推荐阅读