次の15日間のシフトタイミングを作成する必要があります
だから私はこのようにしようとしています:
library(lubridate)
c = matrix(nrow=360, ncol=45)
date1 <- ymd_hms("2000-01-01 00:00:00",tz = "US/Eastern")
date2 <- ymd_hms("2000-01-01 08:00:00",tz = "US/Eastern")
date3<- ymd_hms("2000-01-01 16:00:00",tz = "US/Eastern")
date4<- ymd_hms("2000-02-01 00:00:00",tz = "US/Eastern")
次のように、day1に3つのシフト間隔を作成しました。
shift1<-interval(date1,date2)
shift2<-interval(date2,date3)
shift3<-interval(date4,date3)
そして、次の14日間も同様の間隔を作成したいと思います。私はこのようにしようとしています:
end<-as.matrix(rep(c(shift1,shift2,shift3)+days(1),14)))
これはエラーです
per @ .Data + numのエラー:「numeric」および「Interval」クラスに対して未定義の算術演算子:1つを数値または一致するタイムスパンクラスに変換します。
このapply
ファミリーソリューションはどうですか?
library(lubridate)
date1 <- ymd_hms("2000-01-01 00:00:00",tz = "US/Eastern")
end<- lapply(0:14, function(x){
lapply(c(0,8,16), function(y){
interval((date1+days(x)+hours(y)), (date1+days(x)+hours(y+8)))
})
})
lapply(0:14)
0日目から14日目までの間隔のグループをdate1
lapply(c(0,8,16)
作成します。n+ 1間隔を作成します。ここでn =日付1c(0,8,16)
から開始+ X日目(Xは最初に決定されますlapply
)
結果はlist of lists
、たとえばend[[8]][3]
、8日目の開始の3番目の間隔になります。date1
ベスト!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加