根据匹配的名称更改列名称

时间:2016-08-15 10:02:09

标签: r

我想通过在dt2中搜索匹配的名称来替换col_name_dt1中的列名,然后将其与col_name_masked中的内容重新对齐。我想我可以用某种方式使用match commad?

> 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_dt1包含的名称多于dt2中的名称。 dt2的长度为62,而dim(col_name_dt1)为96。

输出

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

1 个答案:

答案 0 :(得分:1)

尝试,

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

#[1] 1 4 3 2