rデータフレーム列の複数の文字列を別のデータフレームの列の複数の文字列に置き換えます

アン

「PartcipantID」列のデータフレーム(df1)があります。一部の参加者IDが間違っているため、正しい参加者IDに置き換える必要があります。すべての参加者IDがGoal_IDからT4の列に表示される別のデータフレーム(df2)があります。「Goal_ID」列の参加者IDは正しいIDです。
ここで、df1のすべてのParticipantIDをdf2のすべてのGoal_IDParticipantIDに置き換えたいと思います。

これは私の元のデータフレーム(df1)です:

structure(list(Partcipant_ID = c("AA_SH_RA_91", "AA_SH_RA_91", 
"AB_BA_PR_93", "AB_BH_VI_90", "AB_BH_VI_90", "AB_SA_TA_91", "AJ_BO_RA_92", 
"AJ_BO_RA_92", "AK_SH_HA_91", "AL_EN_RA_95", "AL_MA_RA_95", "AL_SH_BA_99", 
"AM_BO_AB_49", "AM_BO_AB_94", "AM_BO_AB_94", "AM_BO_AB_94", "AN_JA_AN_91", 
"AN_KL_GE_11", "AN_KL_WO_91", "AN_MA_DI_95", "AN_MA_DI_95", "AN_SE_RA_95", 
"AN_SE_RA_95", "AN_SI_RA_97", "AN_SO_PU_94", "AN_SU_RA_91", "AR_BO_RA_92", 
"AR_KA_VI_94", "AR_KA_VI_94", "AS_AR_SO_90", "AS_AR_SU_95", "AS_KU_SO_90", 
"AS_MO_AS_97", "AW_SI_OJ_97", "AW_SI_OJ_97", "AY_CH_SU_97", "BH_BE_LD_84", 
"BH_BE_LI_83", "BH_BE_LI_83", "BH_BE_LI_84", "BH_KO_SA_87", "BH_PE_AB_89", 
"BH_YA_SA_87", "BI_CH_PR_94", "BI_CH_PR_94"), Start_T2 = structure(c(NA, 
NA, NA, NA, 1579514871, 1576658745, NA, 1579098225, NA, NA, 1576663067, 
1576844759, NA, 1577330639, NA, NA, 1576693930, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, 1577718380, 1577718380, 1577454467, NA, 
NA, 1576352237, NA, NA, NA, NA, 1576420656, 1576420656, NA, NA, 
1578031772, 1576872938, NA, NA), class = c("POSIXct", "POSIXt"
), tzone = "UTC"), End_T2 = structure(c(NA, NA, NA, NA, 1579515709, 
1576660469, NA, 1579098989, NA, NA, 1576693776, 1576845312, NA, 
1577331721, NA, NA, 1576694799, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, 1577719049, 1577719049, 1577455167, NA, NA, 1576352397, 
NA, NA, NA, NA, 1576421607, 1576421607, NA, NA, 1578032408, 1576873875, 
NA, NA), class = c("POSIXct", "POSIXt"), tzone = "UTC")), row.names = c(NA, 
45L), class = "data.frame")

そしてこれは参照データフレーム(df2)です:

structure(list(Goal_ID = c("AJ_BO_RA_92", "AL_EN_RA_95", "AM_BO_AB_49", 
"AS_KU_SO_90", "BH_BE_LI_84", "BH_YA_SA_87", "BI_CH_PR_94", "BI_CH_PR_94"
), T2 = c("AJ_BO_RA_92", "AL_MA_RA_95", "AM_BO_AB_94", "AS_AR_SO_90", 
"BH_BE_LI_83", "BH_YA_SA_87", "BI_NA_PR_94", "BI_NA_PR_94"), 
    T3 = c("AR_BO_RA_92", "AL_MA_RA_95", "AM_BO_AB_94", NA, "BH_BE_LI_83", 
    NA, "BI_CH_PR_94", "BI_CH_PR_94"), T4 = c("AJ_BO_RA_92", 
    "AL_MA_RA_95", "AM_BO_AB_94", NA, "BH_BE_LI_83", "BH_KO_SA_87", 
    "BI_CH_PR_94", "BI_CH_PR_94")), row.names = c(NA, -8L), class = c("tbl_df", 
"tbl", "data.frame"))

たとえば、私のdf1では、

「AR_BO_RA_92」は「AJ_BO_RA_92」に置き換えられます。
「AL_MA_RA_95」は「AL_EN_RA_95」に置き換えられます。
「AM_BO_AB_94」は「AM_BO_AB_49」に置き換えられます

等々...

string_replaceの使用を考え、これから始めました。

df1$Partcipant_ID <- str_replace(df1$Partcipant_ID, "AR_BO_RA_92", "AJ_BO_RA_92")

しかし、それはもちろん非常に非効率的です。なぜなら、私には非常に多くの置換があり、参照データフレームを利用するとよいからです。私はそれを自分で理解することはできません。
これが理解できることを願っています。追加情報が必要かどうかお問い合わせください。

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

GKi

match文字列がどこにあるかを見つけて、見つかったものとそうでないものを交換するために使用できますNA

i <- match(df1$Partcipant_ID, unlist(df2[-1])) %% nrow(df2)
j <- !is.na(i)
df1$Partcipant_ID[j] <- df2$Goal_ID[i[j]]
df1$Partcipant_ID
# [1] "AA_SH_RA_91" "AA_SH_RA_91" "AB_BA_PR_93" "AB_BH_VI_90" "AB_BH_VI_90"
# [6] "AB_SA_TA_91" "AJ_BO_RA_92" "AJ_BO_RA_92" "AK_SH_HA_91" "AL_EN_RA_95"
#[11] "AL_MA_RA_95" "AL_SH_BA_99" "AM_BO_AB_49" "AM_BO_AB_94" "AM_BO_AB_94"
#[16] "AM_BO_AB_94" "AN_JA_AN_91" "AN_KL_GE_11" "AN_KL_WO_91" "AN_MA_DI_95"
#[21] "AN_MA_DI_95" "AN_SE_RA_95" "AN_SE_RA_95" "AN_SI_RA_97" "AN_SO_PU_94"
#[26] "AN_SU_RA_91" "AR_BO_RA_92" "AR_KA_VI_94" "AR_KA_VI_94" "AS_AR_SO_90"
#[31] "AS_AR_SU_95" "AS_KU_SO_90" "AS_MO_AS_97" "AW_SI_OJ_97" "AW_SI_OJ_97"
#[36] "AY_CH_SU_97" "BH_BE_LD_84" "BH_BE_LI_83" "BH_BE_LI_83" "BH_BE_LI_84"
#[41] "BH_KO_SA_87" "BH_PE_AB_89" "BH_YA_SA_87" "BI_CH_PR_94" "BI_CH_PR_94"

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

R:データフレームの複数の列の複数の値をNAに置き換えます

分類Dev

Rは別のデータフレームの複数の列の値を置き換えます

分類Dev

データフレームconpythonの列の複数の文字を置き換えます

分類Dev

R:データフレームの複数の列の複数の値を別の列の値に置き換えます

分類Dev

データフレームの複数の列をrのインデックスに置き換えます

分類Dev

R:データフレームの複数の列の特殊文字を置き換える

分類Dev

データフレーム内の複数の列から特定の文字列を置き換える

分類Dev

データフレームの複数の列を別のデータフレームのIDに置き換えます

分類Dev

Pandasデータフレームは、部分文字列を見つけることにより、複数の列の文字列を置き換えます

分類Dev

R-(データフレーム内の)複数の一致から文字列を置き換える方法

分類Dev

2つの列にまたがる共通の文字列を、Rのデータフレーム内の別の列の文字列に置き換えます

分類Dev

データフレームの列の文字列を文字列の数値に置き換える

分類Dev

データフレーム文字列列を複数の列に分割します

分類Dev

データフレーム文字列列を複数の列に分割します

分類Dev

データフレーム文字列列を複数の列に分割します

分類Dev

Rでデータフレームの複数の列を文字列から数値に変換します

分類Dev

Rのデータフレームの各行で、部分文字列を別の文字列に置き換える

分類Dev

データフレームの列の文字列から数値を抽出し、その文字列をその数値に置き換えます

分類Dev

Python Pandasでデータフレーム列の文字列を別の文字列に置き換える方法は?

分類Dev

データフレームの複数の列の文字列をfloatに変換します

分類Dev

空の列をrのsparkデータフレームの別の列の値に置き換えます

分類Dev

パンダのデータフレームは、複数の列の条件で値を置き換えます

分類Dev

複数行の文字列をデータフレームに変換する

分類Dev

複数の部分文字列がデータフレーム列に表示される回数を数えます

分類Dev

別のデータフレームに基づいて、データフレームの列から複数の値を置き換える

分類Dev

R複数の文字列長のリストをデータフレームに変換します

分類Dev

データフレーム内のJson文字列を複数の列に変換します

分類Dev

データフレームの複数の列を照合し、値を置き換えます

分類Dev

別のデータフレームを使用して、あるデータフレームの複数の列の値を条件付きで置き換える

Related 関連記事

  1. 1

    R:データフレームの複数の列の複数の値をNAに置き換えます

  2. 2

    Rは別のデータフレームの複数の列の値を置き換えます

  3. 3

    データフレームconpythonの列の複数の文字を置き換えます

  4. 4

    R:データフレームの複数の列の複数の値を別の列の値に置き換えます

  5. 5

    データフレームの複数の列をrのインデックスに置き換えます

  6. 6

    R:データフレームの複数の列の特殊文字を置き換える

  7. 7

    データフレーム内の複数の列から特定の文字列を置き換える

  8. 8

    データフレームの複数の列を別のデータフレームのIDに置き換えます

  9. 9

    Pandasデータフレームは、部分文字列を見つけることにより、複数の列の文字列を置き換えます

  10. 10

    R-(データフレーム内の)複数の一致から文字列を置き換える方法

  11. 11

    2つの列にまたがる共通の文字列を、Rのデータフレーム内の別の列の文字列に置き換えます

  12. 12

    データフレームの列の文字列を文字列の数値に置き換える

  13. 13

    データフレーム文字列列を複数の列に分割します

  14. 14

    データフレーム文字列列を複数の列に分割します

  15. 15

    データフレーム文字列列を複数の列に分割します

  16. 16

    Rでデータフレームの複数の列を文字列から数値に変換します

  17. 17

    Rのデータフレームの各行で、部分文字列を別の文字列に置き換える

  18. 18

    データフレームの列の文字列から数値を抽出し、その文字列をその数値に置き換えます

  19. 19

    Python Pandasでデータフレーム列の文字列を別の文字列に置き換える方法は?

  20. 20

    データフレームの複数の列の文字列をfloatに変換します

  21. 21

    空の列をrのsparkデータフレームの別の列の値に置き換えます

  22. 22

    パンダのデータフレームは、複数の列の条件で値を置き換えます

  23. 23

    複数行の文字列をデータフレームに変換する

  24. 24

    複数の部分文字列がデータフレーム列に表示される回数を数えます

  25. 25

    別のデータフレームに基づいて、データフレームの列から複数の値を置き換える

  26. 26

    R複数の文字列長のリストをデータフレームに変換します

  27. 27

    データフレーム内のJson文字列を複数の列に変換します

  28. 28

    データフレームの複数の列を照合し、値を置き換えます

  29. 29

    別のデータフレームを使用して、あるデータフレームの複数の列の値を条件付きで置き換える

ホットタグ

アーカイブ