SAS - ID 列の値に基づいて 1 つの列を 2 つに分割します

ロレム・イプサム

以下のようなデータがあります。

data have;
  input group replicate $ sex $ count;

datalines;
1 A F 3
1 A M 2
1 B F 4
1 B M 2
1 C F 4
1 C M 5
2 A F 5
2 A M 4
2 B F 6
2 B M 3
2 C F 2
2 C M 2
3 A F 5
3 A M 1
3 B F 3
3 B M 4
3 C F 3
3 C M 1
;
run;

count性別に基づい列を 2 つの個別の列に分割したいと思います。

                                                 count_    count_
                    Obs    group    replicate    female     male

                     1       1          A           3         2
                     2       1          B           4         2
                     3       1          C           4         5
                     4       2          A           5         4
                     5       2          B           6         3
                     6       2          C           2         2
                     7       3          A           5         1
                     8       3          B           3         4
                     9       3          C           3         1

これを行うには、まず の各レベルに対して 2 つの個別のデータ セットを作成しsex、次にマージを実行します。

data just_female;
  set have;
  where sex = 'F';
  rename count = count_female;
run;

data just_male;
  set have;
  where sex = 'M';
  rename count = count_male;
run;

data want;
  merge
    just_female
    just_male
  ;
  by
    group
    replicate
  ;

  keep
    group
    replicate
    count_female
    count_male
  ;
run;

変数を並べ替えたり、明示的に削除/保持したりする必要のない、これを行うためのより冗長な方法はありますか?

J_ラード

を使用してこれを行うことができproc transposeますが、データをソートする必要があります。私はこれがあなたが探しているものだと信じています。

proc sort data=have;
by group replicate;
run;

データは並べ替えられているのでby-group、転置することができます

proc transpose data=have out=want(drop=_name_) prefix=count_;
by group replicate;
id sex;
var count;
run;

proc print data=want;

次に、次を取得します。

Obs    group    replicate    count_F    count_M

 1       1          A           3          2
 2       1          B           4          2
 3       1          C           4          5
 4       2          A           5          4
 5       2          B           6          3
 6       2          C           2          2
 7       3          A           5          1
 8       3          B           3          4
 9       3          C           3          1

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

列の値に基づいて1つの列を2つに分割します

分類Dev

1つはIDを持ち、もう1つは列内の特定の値を持つ2つの列に基づいて行を選択します

分類Dev

SAS:3番目に基づいて1つの列を2つに変換します

分類Dev

別の列の値に基づいて、1つの列の2つの値を比較します

分類Dev

2つの列の値に基づいて1つの行を2つの行に変換します

分類Dev

2番目の配列の列の値に基づいて、1つの配列の値を変更します

分類Dev

Proc Sql、SASの条件に基づいて列を2つに分割する

分類Dev

1つの列の値を2つの列に分割します

分類Dev

1つの列の値に基づいてnumpyの再配列を分割します

分類Dev

where句に基づいて1つの列を2つに分割する方法

分類Dev

IDに基づいて1つのセル値をすべての列にコピーします

分類Dev

列の値に基づいて、2つの同一の行から1つの行を選択します

分類Dev

3つの列に基づいて2行を1つにSQLします

分類Dev

他の2つの列の値に基づいて、1つの列の行の値をピボットする

分類Dev

1つの特定の値のIDに基づいて、オブジェクトを複数の順序付けられた配列に分割します

分類Dev

行IDを使用せずに、2つの列の値に基づいてMySQLから行を削除します

分類Dev

1つの列の共通値に基づいて2つの列配列をフィルター処理する

分類Dev

残りの列を取得せずに、1つの列の上位5つに基づいて2つの列値を抽出します

分類Dev

共通のIDに基づいて2つの配列をマージします

分類Dev

1つの列の値に基づいて2Dマトリックスから値を抽出します

分類Dev

2つの列のいずれかの値に基づいて一意のIDを割り当てます

分類Dev

R-他の2つの列の比較に基づいて1つの列に値を割り当てる

分類Dev

列1の値に基づいて複数の列を2つの列にマージする方法は?

分類Dev

1つの列の値を、他の列に基づいて複数の列に分割します

分類Dev

1つの列を2つに分割し、IDでグループ化する方法

分類Dev

条件に基づいて、Selectの2つの列を1つの列にマージします

分類Dev

mysqlの2つのテーブルの1つの同じ列に基づいて2つの列値をカウントします

分類Dev

IDに基づいてSQLの1つの列を更新したい、つまり新しい列にID値を挿入したい

分類Dev

リストを含む2つの列を、条件に基づいて1つの列に結合します

Related 関連記事

  1. 1

    列の値に基づいて1つの列を2つに分割します

  2. 2

    1つはIDを持ち、もう1つは列内の特定の値を持つ2つの列に基づいて行を選択します

  3. 3

    SAS:3番目に基づいて1つの列を2つに変換します

  4. 4

    別の列の値に基づいて、1つの列の2つの値を比較します

  5. 5

    2つの列の値に基づいて1つの行を2つの行に変換します

  6. 6

    2番目の配列の列の値に基づいて、1つの配列の値を変更します

  7. 7

    Proc Sql、SASの条件に基づいて列を2つに分割する

  8. 8

    1つの列の値を2つの列に分割します

  9. 9

    1つの列の値に基づいてnumpyの再配列を分割します

  10. 10

    where句に基づいて1つの列を2つに分割する方法

  11. 11

    IDに基づいて1つのセル値をすべての列にコピーします

  12. 12

    列の値に基づいて、2つの同一の行から1つの行を選択します

  13. 13

    3つの列に基づいて2行を1つにSQLします

  14. 14

    他の2つの列の値に基づいて、1つの列の行の値をピボットする

  15. 15

    1つの特定の値のIDに基づいて、オブジェクトを複数の順序付けられた配列に分割します

  16. 16

    行IDを使用せずに、2つの列の値に基づいてMySQLから行を削除します

  17. 17

    1つの列の共通値に基づいて2つの列配列をフィルター処理する

  18. 18

    残りの列を取得せずに、1つの列の上位5つに基づいて2つの列値を抽出します

  19. 19

    共通のIDに基づいて2つの配列をマージします

  20. 20

    1つの列の値に基づいて2Dマトリックスから値を抽出します

  21. 21

    2つの列のいずれかの値に基づいて一意のIDを割り当てます

  22. 22

    R-他の2つの列の比較に基づいて1つの列に値を割り当てる

  23. 23

    列1の値に基づいて複数の列を2つの列にマージする方法は?

  24. 24

    1つの列の値を、他の列に基づいて複数の列に分割します

  25. 25

    1つの列を2つに分割し、IDでグループ化する方法

  26. 26

    条件に基づいて、Selectの2つの列を1つの列にマージします

  27. 27

    mysqlの2つのテーブルの1つの同じ列に基づいて2つの列値をカウントします

  28. 28

    IDに基づいてSQLの1つの列を更新したい、つまり新しい列にID値を挿入したい

  29. 29

    リストを含む2つの列を、条件に基づいて1つの列に結合します

ホットタグ

アーカイブ