Sous-ensemble de données.image par date
J'ai un ensemble de données appelé EPL2011_12
. Je voudrais faire de nouveau un jeu de données par subsetting l'original par jour. Les dates sont dans la colonne nommée Date
Les dates sont sous la forme JJ-MM-AA format.
J'ai essayé
EPL2011_12FirstHalf <- subset(EPL2011_12, Date > 13-01-12)
et
EPL2011_12FirstHalf <- subset(EPL2011_12, Date > "13-01-12")
mais obtenez ce message d'erreur à chaque fois.
Warning message: In Ops.factor(Date, 13- 1 - 12) : > not meaningful for factors
Je suppose que cela signifie que R est le traitement de texte par exemple au lieu d'un numéro, et pourquoi il ne fonctionne pas?
- Cela signifie que votre colonne Date a été lu comme un facteur (sans doute lors de l'utilisation de
read.table
ou d'une même fonction). Vous aurez besoin de le convertir en utilisant par exempleas.Date
. - N'oubliez pas
as.character()
, par exemple, utiliseras.Date(as.character(X), "%d-%m-%y")
. - N'est-ce pas là une
as.Date.factor
méthode, ou suis-je malentendu à ce que cela fait...? - Intéressant. Que doit être la nouvelle-ish. J'avais été mordu si souvent par
as.Date(factorvar)
dans le passé avecfactorvar
devenir son niveau...
Vous devez vous connecter pour publier un commentaire.
Bien, c'est clairement pas un nombre, car il a des tirets en elle. Le message d'erreur et les deux commentaires vous dire que c'est un facteur, mais les commentateurs sont apparemment d'attente et de laisser le message de sombrer dans. Dirk est ce qui suggère que vous faites cela:
Après que vous pouvez faire ceci:
R les fonctions de date assumer le format est "AAAA-MM-JJ" ou "YYYY/MM/DD". Vous avez besoin de comparer des classes comme: la date du jour, ou d'un personnage à l'autre.
La première chose que vous devez faire avec les variables de jour est de confirmer que la R se lit comme une Date. Pour ce faire, pour la variable (c'est à dire le vecteur/colonne) appelée Date, dans le bloc de données appelé EPL2011_12, entrée
class(EPL2011_12$Date)
La sortie devrait se lire [1] "Date". Si cela ne fonctionne pas, vous devez le formater comme une date, par l'introduction
EPL2011_12$Date <- as.Date(EPL2011_12$Date, "%d-%m-%y")
Remarque que les traits d'union dans le format de la date ("%d-%m-%y") ci-dessus peuvent également être des barres obliques ("%d/%m/%y"). Confirmer que la R ne voit en elle qu'une Date. Si cela ne fonctionne pas, essayez une autre commande mise en forme
EPL2011_12$Date <- format(EPL2011_12$Date, format="%d/%m/%y")
Une fois que vous l'avez dans le format de Date, vous pouvez utiliser le
subset
de commande, ou vous pouvez utiliser des crochetsWhateverYouWant <- EPL2011_12[EPL2011_12$Date > as.Date("2014-12-15"),]