あるデータテーブルのNAの列を、別のデータテーブルの列の値で更新します

user3067851

私はこのトピックに関する同様の投稿を見ましたが、解決策を理解できませんでした。基本的に、スコアといくつかのNAを含むデータテーブル(DT1)があります。「NA」がある場合は常に、両方のテーブル(トラクト)に共通の列を持つ別のデータ(DT2)テーブルを参照し、DT1のNAをDT2のスコア列の値で更新するプロセスが必要です。効率的なオプションだと思うので、データテーブルクラスを選択しています。

DT1

         tract CreditScore    
1: 36107020401         635  
2: 36083052403          NA  
3: 36091062602          NA  
4: 36067013000          NA  
5: 36083052304          NA  

DT2

         tract CreditScore  
1: 36107020401         635  
2: 36083052403         650  
3: 36091062602         335  
4: 36067013000         777  
5: 36083052304         663  
アルン

data.tableの概念の一部に対して、新しい(より包括的な)HTMLビネット作成しましたたちが取り組んでいる他のビネットについては、こちらご覧ください私は結合用のビネットに取り組んでいます。これが完了すると、これらのタイプの問題がより明確になることを願っています。


アイデアは、最初setkey()DT1列に進むことtractです。

setkey(DT1, tract)

data.tablesでは、フォームの結合にx[i]はのキーxが必要ですが、必ずしものキーである必要はありませんiこれにより、次の2つのシナリオが発生します。

  • iキーセットもある場合-の最初のキー列はの最初のキー列iと一致しx、2番目は2番目と一致します。

  • iキーが設定されていない場合-の最初の列はiの最初のキーと照合されx、2番目の列はiの2番目のキー列と照合さxれます。

この場合、の最初の列iもであるためtract、のキーの設定はスキップしますi

次に、フォームの結合を実行しx[i]ます。これを行うことによりi、一致する行ごとにインデックスxが計算され、結合結果が具体化されます。ただし、結合結果全体を新しいdata.tableとして使用する必要はありません。むしろ、それらの一致する行の 'sでDT1' sCreditScoreを更新したいと思いDT2ます。

data.tablesでは、j次のように式を指定することで、結合中にその操作を実行できます。

DT1[DT2, CreditScore := i.CreditScore]
#          tract CreditScore
# 1: 36067013000         777
# 2: 36083052304         663
# 3: 36083052403         650
# 4: 36091062602         335
# 5: 36107020401         635

DT1[DT2パーツは、の各行に一致する行を検索DT1DT2ます。また、一致するものがある場合は、DT2の値をで更新する必要がありDT1ます。i.CreditScoreこれは、-を使用して実現します。これは、DT2CreditScore列を参照します(data.tablesのi.間で同じ名前の列を区別するために使用されるプレフィックスです)。xi


更新:コメントで指摘されているように、上記のソリューションでは、の非NA値も更新されDT1ます。したがって、それを行う方法は次のようになります。

DT1[is.na(CreditScore), CreditScore := DT2[.(.SD), CreditScore]]

これらの行にCreditScoreからDT1IS NA、交換CreditScoreからDT1の値とCreditScoreから得られるの結合DT2[.(.SD)]、ここで.SDすべての行含まdata.tableのサブセットに対応CreditScoreですNA

HTH

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

R:別のデータテーブルの値でデータテーブルのNAを更新する

分類Dev

kdb別のテーブルのデータで列全体を更新します

分類Dev

Oracle SQL:同じテーブルの別の列のデータでテーブルを更新します

分類Dev

一致する値を使用して、あるテーブル列データを別のテーブルに挿入または更新するMysql

分類Dev

名前が別のテーブルの値である1つのテーブル列からデータをフェッチします

分類Dev

別のテーブルの列データを使用して、あるテーブルの列に値を設定します

分類Dev

MySQLは、あるテーブルの列を別のデータベースのテーブルの別の列と比較します

分類Dev

ある列から別の列(別のテーブルと別のデータベースにある)にデータをコピーします

分類Dev

キーと列の名前と列の更新値を使用して、テーブルデータの変更を別のテーブルに記録する方法

分類Dev

データテーブルを5つの列で照合して、別の列の値を変更する

分類Dev

データベース内のあるテーブルの値を別のデータベース内の別のテーブルに挿入します

分類Dev

SQL:固定値の列を追加しながら、あるテーブルから別のテーブルにデータをコピーします

分類Dev

あるテーブルのデータを別のテーブルのデータから更新する

分類Dev

Laravelは、あるテーブルから別のテーブルにデータを移動し、データの元の列を削除しますか?

分類Dev

別のデータベースのテーブルの値でテーブルを更新する方法

分類Dev

あるデータテーブルから別のデータテーブルに列を追加する

分類Dev

データテーブル内の他の2つの列の合計である列を作成します

分類Dev

SQLデータベース-ある列の最大値を別のテーブル列に使用する

分類Dev

Laravelの同じテーブルにある別の行のデータで行を更新します

分類Dev

データテーブルの列の値を描画する方法

分類Dev

別のテーブルの別の行のデータで行を更新する

分類Dev

別のテーブルの別の行のデータで行を更新する

分類Dev

あるテーブルから別のテーブルの条件でデータを選択します

分類Dev

SQL-あるテーブル列から別のテーブル列にデータをコピーする

分類Dev

データベーステーブルを別のテーブルの値で更新する方法

分類Dev

列のデータを同じテーブル内の別の列に移動する必要があります。

分類Dev

あるテーブルのデータを使用して別のテーブルを更新する更新トリガーを作成できますか?

分類Dev

Rデータテーブル-各要素が値のリストである新しい列を作成します

分類Dev

Shinyrでデータテーブルの列の値をドルで表示する

Related 関連記事

  1. 1

    R:別のデータテーブルの値でデータテーブルのNAを更新する

  2. 2

    kdb別のテーブルのデータで列全体を更新します

  3. 3

    Oracle SQL:同じテーブルの別の列のデータでテーブルを更新します

  4. 4

    一致する値を使用して、あるテーブル列データを別のテーブルに挿入または更新するMysql

  5. 5

    名前が別のテーブルの値である1つのテーブル列からデータをフェッチします

  6. 6

    別のテーブルの列データを使用して、あるテーブルの列に値を設定します

  7. 7

    MySQLは、あるテーブルの列を別のデータベースのテーブルの別の列と比較します

  8. 8

    ある列から別の列(別のテーブルと別のデータベースにある)にデータをコピーします

  9. 9

    キーと列の名前と列の更新値を使用して、テーブルデータの変更を別のテーブルに記録する方法

  10. 10

    データテーブルを5つの列で照合して、別の列の値を変更する

  11. 11

    データベース内のあるテーブルの値を別のデータベース内の別のテーブルに挿入します

  12. 12

    SQL:固定値の列を追加しながら、あるテーブルから別のテーブルにデータをコピーします

  13. 13

    あるテーブルのデータを別のテーブルのデータから更新する

  14. 14

    Laravelは、あるテーブルから別のテーブルにデータを移動し、データの元の列を削除しますか?

  15. 15

    別のデータベースのテーブルの値でテーブルを更新する方法

  16. 16

    あるデータテーブルから別のデータテーブルに列を追加する

  17. 17

    データテーブル内の他の2つの列の合計である列を作成します

  18. 18

    SQLデータベース-ある列の最大値を別のテーブル列に使用する

  19. 19

    Laravelの同じテーブルにある別の行のデータで行を更新します

  20. 20

    データテーブルの列の値を描画する方法

  21. 21

    別のテーブルの別の行のデータで行を更新する

  22. 22

    別のテーブルの別の行のデータで行を更新する

  23. 23

    あるテーブルから別のテーブルの条件でデータを選択します

  24. 24

    SQL-あるテーブル列から別のテーブル列にデータをコピーする

  25. 25

    データベーステーブルを別のテーブルの値で更新する方法

  26. 26

    列のデータを同じテーブル内の別の列に移動する必要があります。

  27. 27

    あるテーブルのデータを使用して別のテーブルを更新する更新トリガーを作成できますか?

  28. 28

    Rデータテーブル-各要素が値のリストである新しい列を作成します

  29. 29

    Shinyrでデータテーブルの列の値をドルで表示する

ホットタグ

アーカイブ