小编典典

查找一周中的哪一天

all

假设我在 R 中有一个日期,其格式如下。

   date      
2012-02-01 
2012-02-01
2012-02-02

R中是否有任何方法可以添加另一列与日期相关的星期几?数据集非常大,因此手动进行更改并没有意义。

df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))

所以在添加天数之后,它最终看起来像:

   date       day
2012-02-01   Wednesday
2012-02-01   Wednesday
2012-02-02   Thursday

这可能吗?谁能指点我一个允许我这样做的包?只是试图按日期自动生成日期。


阅读 87

收藏
2022-05-20

共1个答案

小编典典

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

编辑: 只是为了展示另一种方式......

对象的wday组成部分POSIXlt是数字工作日(从星期日开始的 0-6)。

as.POSIXlt(df$date)$wday
## [1] 3 3 4

您可以使用它来子集工作日名称的字符向量

c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", 
    "Friday", "Saturday")[as.POSIXlt(df$date)$wday + 1]
## [1] "Wednesday" "Wednesday" "Thursday"
2022-05-20