Без надлежащего воспроизводимого примера набора данных я не могу быть уверен в том, что вам нужно, но ... взяв следующий фрейм данных в качестве теста:
x <- data.frame(
"Date" = as.Date(c("2016-01-01", "2015-05-12", "2016-06-16"), format = "%Y-%m-%d"),
"Crime" = LETTERS[1:3])
Что дает:
> x
Date Crime
1 2016-01-01 A
2 2015-05-12 B
3 2016-06-16 C
Это может быть подмножество, создающее логический вектор, сгенерированный format(x$Date, "%Y") == "2016"
, где я изменяю формат даты на год, и использую его в линейном поиске data.frame для возврата строк, в которых находятся элементы логического вектора " TRUE
"как таковой:
> x[format(x$Date, "%Y") == "2016", ]
Date Crime
1 2016-01-01 A
3 2016-06-16 C
x[format(x$Date, "%Y") == "2016", ]
Предоставление:
> x[format(x$Date, "%Y") == "2016", ]
Date Crime
1 2016-01-01 A
3 2016-06-16 C
В качестве альтернативы вы можете использовать функцию dplyr filter()
:
library(tidyverse)
# Route 1. Implement filter() the base R way
filter(x, format(x$Date, "%Y") == "2016")
# Route 2. Use filter() the tidyverse way
x %>% filter(format(x$Date, "%Y") == "2016")