繰り返しのある日付のシーケンスを作成する

学生

日 (195 ~ 720 の番号) のリストがあり、各日に複数の観測があります。最終的には、これらの日のうちどれが平日で、どれが週末かを判断したいと思います。各日に1〜7の数字を割り当てることができれば、これを行うことができます。現在、データは次のようになっています。

     Day    Household ID    Hour of Day
     195     1                  1
     195     1                  2
     195     1                  3
     195     1                  4
     196     1                  1
     196     1                  2
     196     1                  3
     197     1                  1
     197     1                  2

おそらく、各日に一貫した数の観測値がないことに注意することが重要です(たとえば、195日目に4回の観測、196日目に3回の観測、197日目に2回の観測)。

195日目は火曜日であることを知っています。簡単にするために、「2」(水曜日= 3、木曜日= 4など)に等しいものとしてコーディングしたいと思います。

したがって、次の出力を取得したいと思います。

     Day    Household ID    Hour of Day         DAY OF WEEK
     195     1                  1                  2 
     195     1                  2                  2
     195     1                  3                  2
     195     1                  4                  2
     196     1                  1                  3
     196     1                  2                  3
     196     1                  3                  3
     197     1                  1                  4
     197     1                  2                  4

Stataのドキュメントを調べた後、DYM / DMYの使用を検討しました。ただし、元の「日付」変数がないため、これは機能しません。代わりに、7月12日火曜日に対応する番号「195」があります。

私は次のようなものを使いたかった:

     bysort day: egen Hour_of_Day = seq(2, 3, 4, 5, 6, 7, 1)

ただし、Stataによると、これには構文エラーがあります。注:最初の日(195)は火曜日なので、「2」から始めます。carryforwardまたはmod(x,y)またはのようなコマンドも検討しましたfill

毎日同じようにシーケンスを設定する方法を知っている人はいますか?このコードを修正して、目的の出力を実現するにはどうすればよいですか?

ニックコックス

195が火曜日であることがわかっている場合、リバースエンジニアリングは簡単です。193は日曜日、199は土曜日だったに違いありません。

その週の193から199のサンドボックスを見てみましょう。私たち自身の曜日関数での最初の推測では、mod()関数(コマンドではありませんを使用しますこのペーパーは、Stataでのアプリケーションに関する短いリフです。

. clear

. set obs 7
number of observations (_N) was 0, now 7

. gen day = 192 + _n

. gen dow = mod(day, 7)

. list, sep(0)

     +-----------+
     | day   dow |
     |-----------|
  1. | 193     4 |
  2. | 194     5 |
  3. | 195     6 |
  4. | 196     0 |
  5. | 197     1 |
  6. | 198     2 |
  7. | 199     3 |
     +-----------+

曜日に関するStataの規則では、0は日曜日、6は土曜日です。それはただの回転です。

. gen DOW = mod(day + 3, 7)

. list, sep(0) 

     +-----------------+
     | day   dow   DOW |
     |-----------------|
  1. | 193     4     0 |
  2. | 194     5     1 |
  3. | 195     6     2 |
  4. | 196     0     3 |
  5. | 197     1     4 |
  6. | 198     2     5 |
  7. | 199     3     6 |
     +-----------------+

上記dow()を取得する別の方法は、Stata独自の関数で確認できます。DOW

gen StataDOW = dow(day - 2)

したがって、平日の指標は(たとえば)

gen weekday = !inlist(DOW, 0, 6) 

または

gen weekday = inrange(DOW, 1, 5) 

または

gen weekday = !inlist(dow, 4, 3) 

作成された最初の変数を使用します。

たまたま、私はもともとを書いたegen, seq()あなたの構文はseq()、構文と同様に実際には合法ではありませんが、括弧内には何も配置されていません。私はegenここでは使用しません。なぜなら、(あなたが持っているように)複数のオカレンスで正しい答えが本質的に不可能であり、データにギャップがある場合もありそうもないからです。ここでの推論は、繰り返しやギャップに対してロバストであるか、ロバストである必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Excelは、日付と日付の増分を繰り返す平日のシーケンスを作成します

分類Dev

日付間隔のシーケンスを作成する必要があります

分類Dev

乱数のシーケンスを繰り返し生成する

分類Dev

R で繰り返しシーケンスを作成する

分類Dev

繰り返し番号のあるシーケンス

分類Dev

F#の配列に繰り返しシーケンスを作成する最良の方法は何ですか?

分類Dev

繰り返し値のグループ/シーケンスを特定する

分類Dev

整数の繰り返しシーケンスを確認する方法

分類Dev

core.logic:数の繰り返しシーケンスを生成する方法は?

分類Dev

繰り返し行のシーケンス番号を生成する方法

分類Dev

数字の繰り返しシーケンスにラベルを付けます。

分類Dev

rで日付のシーケンスを作成する方法

分類Dev

Linuxで値のシーケンスが繰り返される2つの列を作成する方法は?

分類Dev

イベントの繰り返しシーケンスを見つける方法

分類Dev

パンダの繰り返しシーケンスを数える

分類Dev

R-何年にもわたって日付の繰り返しを作成する

分類Dev

特定の数を超える繰り返しで繰り返される値のシーケンスを除外する方法

分類Dev

グーグルシートで数字の繰り返しシーケンスを生成する方法は?

分類Dev

jQueryを使用してdivを別のdiv内に移動する-シーケンスを繰り返す

分類Dev

最長の繰り返しシーケンスの複雑さを軽減する方法

分類Dev

別の変数に応じて日付のシーケンスを作成する

分類Dev

PostgreSQL-繰り返される連続シーケンスのカウントを選択します

分類Dev

繰り返しシーケンスの次の番号を返す関数

分類Dev

「繰り返し日付」が2つのDateTimeインスタンスの間にあるかどうかを確認します

分類Dev

T-SQL日付の繰り返しを計算する

分類Dev

最長の繰り返しシーケンスに一致する(繰り返しシーケンスで構成されていない)

分類Dev

0からnまでの繰り返し整数シーケンスを生成する方法は?

分類Dev

文字列で繰り返されるシーケンスの数を取得します

分類Dev

シーケンスを繰り返して列を埋める

Related 関連記事

  1. 1

    Excelは、日付と日付の増分を繰り返す平日のシーケンスを作成します

  2. 2

    日付間隔のシーケンスを作成する必要があります

  3. 3

    乱数のシーケンスを繰り返し生成する

  4. 4

    R で繰り返しシーケンスを作成する

  5. 5

    繰り返し番号のあるシーケンス

  6. 6

    F#の配列に繰り返しシーケンスを作成する最良の方法は何ですか?

  7. 7

    繰り返し値のグループ/シーケンスを特定する

  8. 8

    整数の繰り返しシーケンスを確認する方法

  9. 9

    core.logic:数の繰り返しシーケンスを生成する方法は?

  10. 10

    繰り返し行のシーケンス番号を生成する方法

  11. 11

    数字の繰り返しシーケンスにラベルを付けます。

  12. 12

    rで日付のシーケンスを作成する方法

  13. 13

    Linuxで値のシーケンスが繰り返される2つの列を作成する方法は?

  14. 14

    イベントの繰り返しシーケンスを見つける方法

  15. 15

    パンダの繰り返しシーケンスを数える

  16. 16

    R-何年にもわたって日付の繰り返しを作成する

  17. 17

    特定の数を超える繰り返しで繰り返される値のシーケンスを除外する方法

  18. 18

    グーグルシートで数字の繰り返しシーケンスを生成する方法は?

  19. 19

    jQueryを使用してdivを別のdiv内に移動する-シーケンスを繰り返す

  20. 20

    最長の繰り返しシーケンスの複雑さを軽減する方法

  21. 21

    別の変数に応じて日付のシーケンスを作成する

  22. 22

    PostgreSQL-繰り返される連続シーケンスのカウントを選択します

  23. 23

    繰り返しシーケンスの次の番号を返す関数

  24. 24

    「繰り返し日付」が2つのDateTimeインスタンスの間にあるかどうかを確認します

  25. 25

    T-SQL日付の繰り返しを計算する

  26. 26

    最長の繰り返しシーケンスに一致する(繰り返しシーケンスで構成されていない)

  27. 27

    0からnまでの繰り返し整数シーケンスを生成する方法は?

  28. 28

    文字列で繰り返されるシーケンスの数を取得します

  29. 29

    シーケンスを繰り返して列を埋める

ホットタグ

アーカイブ