2016-08-15 9 views
2

dt2の列名をcol_name_dt1に一致する名前を検索して置き換え、col_name_maskedに再設定します。私はmatchコメットをどうにか使うことができると考えましたか?一致する名前に基づいて列名を変更します

> col_name_dt1 
    col_name col_name_masked 
1  1_JH    1 
2 107_MAE    4 
3 108_IME    3 
4 109_GW    2 

> colnames(dt2) 
[1] "1_JH"  "107_MAE" "108_IME" "109_GW" 

注:col_name_dt1dt2で発見されたよりも多くの名前が含まれています。 dim(col_name_dt1)は96

出力

> colnames(dt2) 
[1] "1"  "4" "3" "2" 

答えて

1

てみてください、

col_name_dt1$col_name_masked[match(colnames(dt2), col_name_dt1$col_name)] 

#[1] 1 4 3 2 
+1

申し訳ありませんが、私はこの、2人のDFの長さが同じでないことを言うのを忘れているのに対し、dt2の長さは62ですいくつかのNAを作成します。 update – BioMan

+0

を参照してください。その場合は、 'match'の順序を逆にしてください。更新を参照してください。 –

関連する問題