2

特定の開始時間と特定の曜日があります。

start = as.POSIXct(1234567, origin = "1970-1-1")
format(start, format = "%A %c")
target1 = "TUE"
target2 = "Wednesday"

私が欲しいのは、開始後、対応する曜日に一致する最初の日を見つけることです。(そして、うまくいけば、ユーザーが曜日のターゲットを入力する方法に関していくらか柔軟です)何かアイデアはありますか?文字列ルックアップテーブルが機能するかもしれないと思いますが、もっときちんとした方法が必要です。

解をベクトル化できる場合のボーナスポイント...

4

1 に答える 1

2

私はまだこれをベクトル化しようとはしていません(私ができるかどうかはわかりません)が、ここに試みがあります:

find_day <- function(start,target){
    target <- tolower(target)
    next_week <- as.Date(start) + 1:7
    next_week[match(target,substr(tolower(weekdays(next_week)),1,nchar(target)))]
}

1日の長さまたは大文字の省略形を受け入れる必要があります。それの使い方:

> find_day(start,"TUE")
[1] "1970-01-20"
> find_day(start,"friday")
[1] "1970-01-16"
于 2012-05-31T11:51:33.413 に答える