2017-01-02 13 views
1

我有三個77個變量的數據框。他們都是一樣的,他們只有不同的年份(2014年,2015年,2016年)。一次在所有列中添加字符

我想將它們合併,但所有的colnames是完全一樣的,所以我不知道哪個值屬於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| 

有誰知道,如果我能做到這一點有一個環形或其他功能?否則,我需要重命名colnames 231倍;第一)

感謝,阿南德

+0

你可以做'data.table :: rbindlist(mget(ls(pattern =「^ df」)),id = TRUE)' –

回答

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 
1

把它們都在一個列表:

l = list(df2014, df2015, df2016) 

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