1に等しい2つの日付の間にダミー変数を作成する必要があります

サイードモハマドアリアビディ

私は次の種類のデータを持っています:

group<-as.character(c("A","A","A","A","B","B","B","B"))
rain_start<-c(1,0,0,0,0,1,0,0)
rain_end<-c(0,0,1,0,0,1,0,0)
day<-c(1,2,3,4,1,2,3,4)
data<-as.data.frame(cbind(group,rain_start,rain_end,day))

これは以下を生成します:

+--------+-------------+-----------+-----+--+
|        |             |           |     |  |
+--------+-------------+-----------+-----+--+
| group  | rain_start  | rain_end  | day |  |
| A      | 1           | 0         | 1   |  |
| A      | 0           | 0         | 2   |  |
| A      | 0           | 1         | 3   |  |
| A      | 0           | 0         | 4   |  |
| B      | 0           | 0         | 1   |  |
| B      | 1           | 0         | 2   |  |
| B      | 0           | 1         | 3   |  |
| B      | 0           | 0         | 4   |  |
+--------+-------------+-----------+-----+--+

ここで、グループごとに、雨が降っていたかどうかを示す1つの列を作成したいと思います。そう:

rain<-c(1,1,1,0,1,1,0,0)

data2<-as.data.frame(cbind(group,rain,day))
data2

これは以下を生成します:

+-------+------+------+--+--+
| group | rain |  day |  |  |
+-------+------+------+--+--+
| A     |    1 |    1 |  |  |
| A     |    1 |    2 |  |  |
| A     |    1 |    3 |  |  |
| A     |    0 |    4 |  |  |
| B     |    1 |    1 |  |  |
| B     |    1 |    2 |  |  |
| B     |    0 |    3 |  |  |
| B     |    0 |    4 |  |  |
+-------+------+------+--+--+

dplyrでmutate()とifelseを試しましたが、ベクトルの不一致に問題があります。

ロナックシャー

rain_startグループBの1日目から開始すると仮定すると、次のように実行できます。

library(dplyr)

data %>%
  group_by(group) %>%
  mutate(rain = as.integer(between(row_number(), 
                           match(1, rain_start), match(1, rain_end)))) %>%
  select(group, rain, day)

#  group  rain   day
#  <chr> <int> <dbl>
#1 A         1     1
#2 A         1     2
#3 A         1     3
#4 A         0     4
#5 B         1     1
#6 B         1     2
#7 B         0     3
#8 B         0     4

すべての値を1に変換します。ここで、row_number()は最初の値whererain_start = 1と最初の値whereの間にありrain_end = 1ます。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

2つの時点の間にある年のダミー変数を作成する方法はありますか?

分類Dev

日付に基づいて2つのSQLテーブルを照合する必要がありますが、date +1を確認する必要があります

分類Dev

既存の変数がデータフレーム内の2つの値の間にある場合、1に等しい新しい変数を作成します

分類Dev

Excel:1つの列の2つの列(日付の間)の日付範囲に基づいて合計する必要があります

分類Dev

パンダでは、2つの日付の間に期間を作成する方法はありますか?

分類Dev

パンダでは、2つの日付の間に期間を作成する方法はありますか?

分類Dev

2つのIDに対して最新の2つの日付を選択する必要があります

分類Dev

1日あたりの金額を2倍にし、ペニーの数をドル+セントに変換する必要があります

分類Dev

日付をRのダミー変数に変換します

分類Dev

htmlの日付入力をJS変数に保存する必要があります

分類Dev

可変開始日+日間隔に基づいて、当日の次の日付を見つける必要があります

分類Dev

2つの変数の間にあるjson-dataの1行からデータを抽出する必要があります(Powershell)

分類Dev

日付間隔のダミー変数を作成する方法

分類Dev

2つのアークの間にサイクルを作成するために、ある種の内部可変性を使用する必要がありますか?

分類Dev

JavaScriptで任意の2つの日付の間のすべての日付を取得する必要があります

分類Dev

フラッター:日付が2つの日付の間にあるかどうかを確認します

分類Dev

mysqlで2つのテーブルを結合する方法ですが、2つのテーブルの間に日付の違いがありますか?

分類Dev

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

分類Dev

複数の期間にわたって、日付が他の日付の間にあるかどうかに基づいて新しい列を作成します

分類Dev

Java関数で時間用に2つのカレンダーインスタンスを作成する必要がありますか?

分類Dev

2つの異なるタイプのvarchar形式の日付を特定の形式のvarchar形式の日付に変更する必要があります

分類Dev

EXCEL特定の量に達するために2つの間の値を合計する必要がある2つのセル値(日付)を追跡します

分類Dev

terraformリソースは、変数に基づいて複数のCloudWatchアラームを作成する必要があります。これはプランで確認されていますが、1つのアラームのみをデプロイします。

分類Dev

SQL関数は、日付が別のテーブルの2つの日付の間にあるかどうかをチェックします

分類Dev

1週間以内にアクティブな日の分布を見つけ、1日にアクティブなメンバーの数を示すテーブルを作成する必要があります

分類Dev

パンダの2つの日時の間に特定の日と月の日付がありますか?

分類Dev

複数の変数に対して複数のサービスを作成する必要がありますか?

分類Dev

変数にPostgresの日付タイプをどのように割り当てる必要がありますか

分類Dev

Pandas Dataframeは、日付が2つの日付の間にある行を保持します(別々の列)

Related 関連記事

  1. 1

    2つの時点の間にある年のダミー変数を作成する方法はありますか?

  2. 2

    日付に基づいて2つのSQLテーブルを照合する必要がありますが、date +1を確認する必要があります

  3. 3

    既存の変数がデータフレーム内の2つの値の間にある場合、1に等しい新しい変数を作成します

  4. 4

    Excel:1つの列の2つの列(日付の間)の日付範囲に基づいて合計する必要があります

  5. 5

    パンダでは、2つの日付の間に期間を作成する方法はありますか?

  6. 6

    パンダでは、2つの日付の間に期間を作成する方法はありますか?

  7. 7

    2つのIDに対して最新の2つの日付を選択する必要があります

  8. 8

    1日あたりの金額を2倍にし、ペニーの数をドル+セントに変換する必要があります

  9. 9

    日付をRのダミー変数に変換します

  10. 10

    htmlの日付入力をJS変数に保存する必要があります

  11. 11

    可変開始日+日間隔に基づいて、当日の次の日付を見つける必要があります

  12. 12

    2つの変数の間にあるjson-dataの1行からデータを抽出する必要があります(Powershell)

  13. 13

    日付間隔のダミー変数を作成する方法

  14. 14

    2つのアークの間にサイクルを作成するために、ある種の内部可変性を使用する必要がありますか?

  15. 15

    JavaScriptで任意の2つの日付の間のすべての日付を取得する必要があります

  16. 16

    フラッター:日付が2つの日付の間にあるかどうかを確認します

  17. 17

    mysqlで2つのテーブルを結合する方法ですが、2つのテーブルの間に日付の違いがありますか?

  18. 18

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

  19. 19

    複数の期間にわたって、日付が他の日付の間にあるかどうかに基づいて新しい列を作成します

  20. 20

    Java関数で時間用に2つのカレンダーインスタンスを作成する必要がありますか?

  21. 21

    2つの異なるタイプのvarchar形式の日付を特定の形式のvarchar形式の日付に変更する必要があります

  22. 22

    EXCEL特定の量に達するために2つの間の値を合計する必要がある2つのセル値(日付)を追跡します

  23. 23

    terraformリソースは、変数に基づいて複数のCloudWatchアラームを作成する必要があります。これはプランで確認されていますが、1つのアラームのみをデプロイします。

  24. 24

    SQL関数は、日付が別のテーブルの2つの日付の間にあるかどうかをチェックします

  25. 25

    1週間以内にアクティブな日の分布を見つけ、1日にアクティブなメンバーの数を示すテーブルを作成する必要があります

  26. 26

    パンダの2つの日時の間に特定の日と月の日付がありますか?

  27. 27

    複数の変数に対して複数のサービスを作成する必要がありますか?

  28. 28

    変数にPostgresの日付タイプをどのように割り当てる必要がありますか

  29. 29

    Pandas Dataframeは、日付が2つの日付の間にある行を保持します(別々の列)

ホットタグ

アーカイブ