私は働いている機能がありますが、これについてもっと簡単な方法があることを期待しています。週に1時間のデータを効率的かつ簡潔にRに変換
私は、発生した週の時刻でキャプチャされたイベントのデータセットを持っています。たとえば、日曜日の午前4時=月曜日の午前4時= 28時などです。このデータを毎日分析したい基礎。たとえば、8時から10時の間に発生するすべてのイベントは、任意の日に発生します。
これを行うには、順序付きリストの指定された範囲に対して2分の1の値を返す関数を作成しました。関数two_breakは、週の時間を表す0:168と24時間の希望期間の範囲(b1とb2)の間の整数の順序付きリストを受け入れます。 b1とb2は、希望する24時間の範囲を分割します。つまり、b1 = 8、b2 = 10の場合、two_breakは9、(9 + 24)= 33、(9 + 48)= 57などのすべての値を返します。 1および他のすべて0
two_break <- function(test_hr,b1,b2){
test_hr<-ifelse(test_hr==1,1.1,test_hr)
for(i in 0:6){
test_hr<-ifelse(test_hr> (b1+24*i) & test_hr< (b2+24*i), 1 ,test_hr)
}
test_hr<-ifelse(test_hr==1,1,0)
return(test_hr)
}
としてこの機能が正常に動作しますが、そこに誰が/簡潔に、より効率的にそれを行うことができれば、私は思ったんだけど。
私のgithub:anthonyjp87 168時間変換ファイル/データで完全なコードとデータセットを参照してください。
乾杯!
これは素晴らしいです!しかし、私はまた、順序付きリストを探しています - どのようなヒントは、順序リストとしてtest_hrを保持し、一致しない値を '0'にしますか? – anthonyjp87
明確にするために、バイナリ変数が必要ですか?週の時間がテスト設定の場合は1秒、設定されていない場合は0秒です。 – lmo
はい、これは私が作成しようとしているものです – anthonyjp87