1. ホーム
  2. r

[解決済み】曜日を調べる

2022-04-06 20:33:01

質問

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

これは可能なのでしょうか?どなたかこれを可能にするパッケージを紹介していただけませんか? ただ、日付によって日を自動的に生成しようとしています。

解決方法は?

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"