J'ai un grand ensemble de données dans data.table que je voudrais sous-ensemble par une plage de dates. Mon ensemble de données ressemble à ceci:
testset <- data.table(date=as.Date(c("2013-07-02","2013-08-03","2013-09-04",
"2013-10-05","2013-11-06")),
yr = c(2013,2013,2013,2013,2013),
mo = c(07,08,09,10,11),
da = c(02,03,04,05,06),
plant = LETTERS[1:5],
product = as.factor(letters[26:22]),
rating = runif(25))
J'aimerais pouvoir choisir une plage de dates directement à partir du as.Date
colonne sans utiliser les colonnes yr
, mo
ou da
. Actuellement, je sous-ensemble par mo
et c'est parfois très maladroit, surtout quand les années changent. Une méthode plus élégante de le faire me faciliterait infiniment la vie.
Merci d'avance!
Pourquoi pas:
testset[date>="2013-08-02" & date<="2013-11-01"]
Voir également:
?`%between%`
Fonctionne comme ceci:
testset[date %between% c("2013-08-02", "2013-11-01")]
Vous avez mentionné que vous sous-ensemble, mais ce n'est pas clair si vous utilisez le sous-ensemble fn dans R.
Tapez? Subset dans la console R pour voir les détails de la fonction subset () dans R qui "renvoie un sous-ensemble de vecteurs, matrices ou trames de données qui remplissent les conditions". Ensuite, utilisez une partie de la méthode que Troy a publiée ci-dessus pour choisir la plage de dates
thisYear <- subset(testset, date > "2015-01-01" & date < "2015-12-31")