ОП относительно неясен, поэтому этот ответ должен быть умозрительным. Но похоже, что не хватает преобразования ваших значений date
в значения POSIXct. Это преобразование может быть достигнуто следующим образом:
Предположим, у вас есть данные, подобные этому:
my.data <- read.csv(text = '
Date, Var2, Var3
05/10/2011, AK, aa
06/15/2011, AK, bb
07/21/2011, OH, cc
NA, OH, dd
05/13/2012, PA, ee
07/22/2012, AL, ff
03/28/2013, NY, gg
', header=TRUE, stringsAsFactors = FALSE, na.strings = 'NA', strip.white = TRUE)
На данный момент ваши даты для R - просто строки символов, как видно из вызов str
:
str(my.data)
'data.frame': 7 obs. of 3 variables:
$ Date: chr "05/10/2011" "06/15/2011" "07/21/2011" NA ...
$ Var2: chr "AK" "AK" "OH" "OH" ...
$ Var3: chr "aa" "bb" "cc" "dd" ...
Чтобы R распознал даты как правильные, используйте as.POSIXct
:
my.data$my_Date <- as.POSIXct(my.data$Date, format = "%m/%d/%Y")
Теперь вы можете подмножество, например, для мая:
my.data[format.Date(my.data$my_Date, "%m")=="05" &
!is.na(my.data$my_Date),]
Date Var2 Var3 my_Date
1 05/10/2011 AK aa 2011-05-10
5 05/13/2012 PA ee 2012-05-13
Или выберите май одного года, например, 2012:
my.data[format.Date(my.data$my_Date, "%Y")=="2012" &
format.Date(my.data$my_Date, "%m")=="05" &
!is.na(my.data$my_Date),]
Date Var2 Var3 my_Date
5 05/13/2012 PA ee 2012-05-13