Disons que j'ai une date en R et qu'elle est formatée comme suit.
date
2012-02-01
2012-02-01
2012-02-02
Existe-t-il un moyen dans R d'ajouter une autre colonne avec le jour de la semaine associé à la date? L'ensemble de données est vraiment volumineux, il ne serait donc pas judicieux de procéder manuellement et d'apporter les modifications.
df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))
Donc, après avoir ajouté les jours, cela finirait par ressembler à:
date day
2012-02-01 Wednesday
2012-02-01 Wednesday
2012-02-02 Thursday
Est-ce possible? Quelqu'un peut-il m'indiquer un package qui me permettra de le faire? J'essaie simplement de générer automatiquement le jour par la date.
weekdays
pour obtenir le nombre de jours de la semaine comme vous le faites avecas.POSIXlt
??setNames(0:6, c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))[weekdays(as.Date(df$date))]
. Si vous n'aimez pas les noms, vous pouvez les envelopperunname()
.Utilisez le
lubridate
package et la fonctionwday
:la source
abbr = FALSE
Rechercher
?strftime
:la source
'%u'
au lieu de'%A'
Supposons que vous souhaitiez en outre que la semaine commence le lundi (au lieu de la valeur par défaut le dimanche), alors ce qui suit est utile:
Le résultat est le nombre de jours dans l'intervalle [0, .., 6].
Si vous souhaitez que l'intervalle soit [1, .. 7], utilisez ce qui suit:
... Ou bien:
la source
week_start
:wday(df$date, label = TRUE, week_start = 1)
Cela devrait faire l'affaire
la source
la source
sous forme de commentaire de JStrahl
format(as.Date(df$date),"%w")
, nous obtenons le nombre de jours en cours:as.numeric(format(as.Date("2016-05-09"),"%w"))
la source