一次添加所有列中的字符

时间:2017-01-02 17:09:32

标签: r renaming

我有三个数据帧,包含77个变量。它们都是相同的,它们只是年份不同(2014年,2015年,2016年)。

我想合并它们,但所有的名称都完全相同,所以我不知道哪些值属于2014年,2015年或2015年。

我想通过将年份添加到三个数据框中的所有字符串来解决此问题。

所以现在我有:

df_2014:
a|b|c
1|2|3

df_2015
a|b|c|
4|5|6|

df_2016
a|b|c|
7|8|9|

我想:

df_2014:
a(2014)|b(2014)|c(2014)
1|2|3

df_2015:
a(2015)|b(2015)|c(2015)|
4|5|6|

df_2016:
a(2016)|b(2016)|c(2016)|
7|8|9|

有人知道我是否可以通过循环或其他功能执行此操作?否则我需要重命名231次colnoames;)

谢谢,Arnand

2 个答案:

答案 0 :(得分:1)

首先将它们全部列入清单:

l = list(df2014, df2015, df2016)

lapply(seq_along(l), function(x) {colnames(l[[x]]) = paste0(colnames(l[[x]]) ,"(", x+2013, ")");l[[x]]})

答案 1 :(得分:1)

您可以使用setNames。例如:

df_2017 <- data.frame(a = 1, b = 2, c = 3)

setNames(df_2017, paste("df_2017",colnames(df_2017), sep = "")) 

Output:
  df_2017a df_2017b df_2017c
1        1        2        3