将数据框的列的“名称”替换为R中另一个文件中的不同(新)名称

时间:2013-06-28 07:58:05

标签: r dataframe names

我有两个数据框:一个(数据框A)如下所示:

S.No    A1     A2    A3   A4     A6
  1      0      0     0    0      0
  2      2      4     7    7      9
  3      6      7     9    10     0

等等。

另一个(数据帧B)文件如下:

S.No   old_names      new_names
   1     A1              qq
   2     A2              ww
   3     A3              gg
   4     A4              zz
   5     A6              mm

A的名称不必与B $ old_names的顺序相同。

我的新文件应如下所示:

S.No    qq     ww    gg   zz     mm
  1      0      0     0    0      0
  2      2      4     7    7      9
  3      6      7     9    10     0

有没有更简单的方法在R中执行此操作而不使用for循环并比较两个文件?

非常感谢任何帮助。 这两个文件都太大了。

1 个答案:

答案 0 :(得分:4)

n <- names(df1)[-1]  # get rid of S.No

names(df1) <- c("S.No", as.character(df2$new_names)[match(n, df2$old_names)])