重複する値を持つ複数の列から一意の値のベクトルを作成します

cptn

data.frameには、行のSUBJECTに3つの列があります。行ごとに一意の件名を持つ追加の列が必要です。まず、私のデータはどのように見えるか:

DATE <- c("1","2","3","4","5","6","7","1","2","3","4","5","6","7")
COMP <- c("A", "A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "B", "B")
RET <- c(-2.0,1.1,3,1.4,-0.2, 0.6, 0.1, -0.21, -1.2, 0.9, 0.3, -0.1,0.3,-0.12)
CLASS <- c("positive", "negative", "aneutral", "positive", "positive", "negative", "aneutral", "positive", "negative", "negative", "positive", "aneutral", "aneutral", "aneutral")
SUBJECT.1 <- c("LITIGATION","LAYOFF","POLLUTION","CHEMICAL DISASTER","PRESS RELEASE","PEOPLE","EMISSIONS","ENERGY","WASTE MANAGEMENT","EMPLOYEES","MANAGEMENT","PRESS RELEASE","HOTELS","POLLUTION")
SUBJECT.2 <- c("POLLUTION","EMPLOYEES","NUCLEAR","FUELS","STOCK OPTION PLAN","EXECUTIVES","CO2","SOLAR","POLLUTION","EXECUTIVES","PRESS RELEASE","CELEBRITIES","CELEBRITIES","LITIGATION")
SUBJECT.3 <- c("ENVIRONMENT","JOB REDUCTIONS","POWER PLANTS","POLLUTION","EMPLOYEES","FRAUD","CLIMATE CHANGE","SUSTAINABILITY","HAZARDOUS WASTE","BONUS PAY","LITIGATION","EMISSIONS","SCANDALS","SCANDALS")
CONTROLVAR <- c("11","13","13","14","13","14","12","11","13","13","14","13","14","12")

mydf <- data.frame(DATE, COMP, RET, CLASS, SUBJECT.1, SUBJECT.2, SUBJECT.3, CONTROLVAR, stringsAsFactors=F)

mydf

#    DATE COMP   RET    CLASS         SUBJECT.1         SUBJECT.2       SUBJECT.3 CONTROLVAR
# 1     1    A -2.00 positive        LITIGATION         POLLUTION     ENVIRONMENT         11
# 2     2    A  1.10 negative            LAYOFF         EMPLOYEES  JOB REDUCTIONS         13
# 3     3    A  3.00 aneutral         POLLUTION           NUCLEAR    POWER PLANTS         13
# 4     4    A  1.40 positive CHEMICAL DISASTER             FUELS       POLLUTION         14
# 5     5    A -0.20 positive     PRESS RELEASE STOCK OPTION PLAN       EMPLOYEES         13
# 6     6    A  0.60 negative            PEOPLE        EXECUTIVES           FRAUD         14
# 7     7    A  0.10 aneutral         EMISSIONS               CO2  CLIMATE CHANGE         12
# 8     1    B -0.21 positive            ENERGY             SOLAR  SUSTAINABILITY         11
# 9     2    B -1.20 negative  WASTE MANAGEMENT         POLLUTION HAZARDOUS WASTE         13
# 10    3    B  0.90 negative         EMPLOYEES        EXECUTIVES       BONUS PAY         13
# 11    4    B  0.30 positive        MANAGEMENT     PRESS RELEASE      LITIGATION         14
# 12    5    B -0.10 aneutral     PRESS RELEASE       CELEBRITIES       EMISSIONS         13
# 13    6    B  0.30 aneutral            HOTELS       CELEBRITIES        SCANDALS         14
# 14    7    B -0.12 aneutral         POLLUTION        LITIGATION        SCANDALS         12

後の回帰のためにサブジェクトをダミー変数(排他的である必要があります)として含めたいので、各行に一意のサブジェクトを持つ単一の列SUBJECTが必要です。訴訟、汚染、レイオフのテーマに焦点を当てたいと思います。

左から右に移動して、各SUBJECT列でLITIGATION、POLLUTION、LAYOFFを確認したいと思います。

最初の列にLITIGATION、POLLUTION、またはLAYOFFの3つの主題のいずれかがある場合、この主題が採用されます。最初の列に別の主題がある場合は、2番目の列をチェックします。3つのサブジェクト列のいずれにもLITIGATION、POLLUTION、またはLAYOFFが含まれていない場合、サブジェクトはOTHERと呼ばれる必要があります。また、一部の科目はグループ化する必要があります。この例では、EMISSIONSはPOLLUTIONであるかのように扱う必要があります。

出力は次のようになります。

#    DATE COMP   RET    CLASS         SUBJECT.1         SUBJECT.2       SUBJECT.3    SUBJECT CONTROLVAR
# 1     1    A -2.00 positive        LITIGATION         POLLUTION     ENVIRONMENT LITIGATION         11
# 2     2    A  1.10 negative            LAYOFF         EMPLOYEES  JOB REDUCTIONS     LAYOFF         13
# 3     3    A  3.00 aneutral         POLLUTION           NUCLEAR    POWER PLANTS  POLLUTION         13
# 4     4    A  1.40 positive CHEMICAL DISASTER             FUELS       POLLUTION  POLLUTION         14
# 5     5    A -0.20 positive     PRESS RELEASE STOCK OPTION PLAN       EMPLOYEES      OTHER         13
# 6     6    A  0.60 negative            PEOPLE        EXECUTIVES           FRAUD      OTHER         14
# 7     7    A  0.10 aneutral         EMISSIONS               CO2  CLIMATE CHANGE  POLLUTION         12
# 8     1    B -0.21 positive            ENERGY             SOLAR  SUSTAINABILITY      OTHER         11
# 9     2    B -1.20 negative  WASTE MANAGEMENT         POLLUTION HAZARDOUS WASTE  POLLUTION         13
# 10    3    B  0.90 negative         EMPLOYEES        EXECUTIVES       BONUS PAY      OTHER         13
# 11    4    B  0.30 positive        MANAGEMENT     PRESS RELEASE      LITIGATION LITIGATION         14
# 12    5    B -0.10 aneutral     PRESS RELEASE       CELEBRITIES       EMISSIONS  POLLUTION         13
# 13    6    B  0.30 aneutral            HOTELS       CELEBRITIES        SCANDALS      OTHER         14
# 14    7    B -0.12 aneutral         POLLUTION        LITIGATION        SCANDALS  POLLUTION         12

ありがとうございました!

デビッド・アレンバーグ
mydf$SUBJECT <- "OTHER"
sapply(c("SUBJECT.3", "SUBJECT.2", "SUBJECT.1"), function(x) mydf[mydf[, x] %in% c("LITIGATION", "POLLUTION", "LAYOFF", "EMISSIONS"), "SUBJECT"] <<- mydf[mydf[, x] %in% c("LITIGATION", "POLLUTION", "LAYOFF", "EMISSIONS"), x])
mydf$SUBJECT[mydf$SUBJECT == "EMISSIONS"] <- "POLLUTION"

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

キーごとに複数の一意の値を持つ文字列のリストから3レベルの辞書を作成します

分類Dev

(一意の値を持つ)辞書のリストから重複を削除します

分類Dev

ベクトルから一意の値を削除して重複を保持する方法

分類Dev

複数の値を持つフィルター処理された列からの一意の値を配列に入力します

分類Dev

SSIS列の重複する値に数値を追加して、それらを一意にします

分類Dev

複数の列から一意の値を転置する

分類Dev

複数の数値IDから一意の数値IDを作成する

分類Dev

Rの複数の列から一意の値を集計します

分類Dev

複数の一意の値を持つ列を検索する

分類Dev

配列内のすべての一意ではない値(つまり、重複/複数)を取得します

分類Dev

一意の値を持つ複数の行を挿入します-SQL

分類Dev

一意の値を持つデータフレーム内の重複を列挙します

分類Dev

別の列からの重複値に基づいて、ある列からの一意の値をフィルタリングします

分類Dev

一意の文字列値を維持しながら、オブジェクト配列内の重複オブジェクトを削除する

分類Dev

1つの列に複数の一意の値を持つ行を削除します

分類Dev

リストを作成するために一意の値を持つ複数のXElementを選択する方法を改善します

分類Dev

一意の値を左にシフトし、文字列内の重複する値を削除します

分類Dev

配列をIDでマージし、重複する連想インデックスを持つ一意の値を考慮します

分類Dev

重複をフィルタリングした後、一意の値を持つ行を選択する

分類Dev

複数の配列を一意の値を持つ1つにマージしますphp

分類Dev

別の列で複数の一意の値を持つグループを削除する

分類Dev

重複する行の他の列を最初の一意の値に置き換え、ルックアップを作成します

分類Dev

phpループ内の重複を削除します-一意のIDからの値の加算のみ#

分類Dev

ベクトルから一意の値を削除する方法

分類Dev

Rの複数の列の一意の値をカウントします

分類Dev

2 つの列の重複する値を SQL で検索し、「列 1」のすべての値と「列 2」の一意の値を表示します

分類Dev

重複する要素を持つ配列を一意の要素を持つ配列に分割します

分類Dev

配列から一意の配列を作成する(複数)

分類Dev

列の一意の値をループして、複数の列を作成します

Related 関連記事

  1. 1

    キーごとに複数の一意の値を持つ文字列のリストから3レベルの辞書を作成します

  2. 2

    (一意の値を持つ)辞書のリストから重複を削除します

  3. 3

    ベクトルから一意の値を削除して重複を保持する方法

  4. 4

    複数の値を持つフィルター処理された列からの一意の値を配列に入力します

  5. 5

    SSIS列の重複する値に数値を追加して、それらを一意にします

  6. 6

    複数の列から一意の値を転置する

  7. 7

    複数の数値IDから一意の数値IDを作成する

  8. 8

    Rの複数の列から一意の値を集計します

  9. 9

    複数の一意の値を持つ列を検索する

  10. 10

    配列内のすべての一意ではない値(つまり、重複/複数)を取得します

  11. 11

    一意の値を持つ複数の行を挿入します-SQL

  12. 12

    一意の値を持つデータフレーム内の重複を列挙します

  13. 13

    別の列からの重複値に基づいて、ある列からの一意の値をフィルタリングします

  14. 14

    一意の文字列値を維持しながら、オブジェクト配列内の重複オブジェクトを削除する

  15. 15

    1つの列に複数の一意の値を持つ行を削除します

  16. 16

    リストを作成するために一意の値を持つ複数のXElementを選択する方法を改善します

  17. 17

    一意の値を左にシフトし、文字列内の重複する値を削除します

  18. 18

    配列をIDでマージし、重複する連想インデックスを持つ一意の値を考慮します

  19. 19

    重複をフィルタリングした後、一意の値を持つ行を選択する

  20. 20

    複数の配列を一意の値を持つ1つにマージしますphp

  21. 21

    別の列で複数の一意の値を持つグループを削除する

  22. 22

    重複する行の他の列を最初の一意の値に置き換え、ルックアップを作成します

  23. 23

    phpループ内の重複を削除します-一意のIDからの値の加算のみ#

  24. 24

    ベクトルから一意の値を削除する方法

  25. 25

    Rの複数の列の一意の値をカウントします

  26. 26

    2 つの列の重複する値を SQL で検索し、「列 1」のすべての値と「列 2」の一意の値を表示します

  27. 27

    重複する要素を持つ配列を一意の要素を持つ配列に分割します

  28. 28

    配列から一意の配列を作成する(複数)

  29. 29

    列の一意の値をループして、複数の列を作成します

ホットタグ

アーカイブ