查找一周中的哪一天 [英] Find the day of a week
问题描述
假设我在 R 中有一个日期,它的格式如下.
Let's say that I have a date in R and it's formatted as follows.
date
2012-02-01
2012-02-01
2012-02-02
在 R 中有什么方法可以添加另一列与日期相关的星期几?数据集非常大,因此手动进行并进行更改是没有意义的.
Is there any way in R to add another column with the day of the week associated with the date? The dataset is really large, so it would not make sense to go through manually and make the changes.
df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))
所以在添加天数后,它最终看起来像:
So after adding the days, it would end up looking like:
date day
2012-02-01 Wednesday
2012-02-01 Wednesday
2012-02-02 Thursday
这可能吗?任何人都可以向我指出一个允许我这样做的包吗?只是想按日期自动生成日期.
Is this possible? Can anyone point me to a package that will allow me to do this? Just trying to automatically generate the day by the date.
推荐答案
df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))
df$day <- weekdays(as.Date(df$date))
df
## date day
## 1 2012-02-01 Wednesday
## 2 2012-02-01 Wednesday
## 3 2012-02-02 Thursday
只是为了展示另一种方式......
Just to show another way...
POSIXlt
对象的 wday
组件是数字工作日(从星期日开始 0-6).
The wday
component of a POSIXlt
object is the numeric weekday (0-6 starting on Sunday).
as.POSIXlt(df$date)$wday
## [1] 3 3 4
您可以使用它对工作日名称的字符向量进行子集化
which you could use to subset a character vector of weekday names
c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday")[as.POSIXlt(df$date)$wday + 1]
## [1] "Wednesday" "Wednesday" "Thursday"
这篇关于查找一周中的哪一天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!