2017-01-02 10 views
1

У меня есть три кадра данных с 77 переменными. Они все одинаковые, они отличаются только годами (2014, 2015, 2016).Добавление символов во все столбцы сразу

Я хочу, чтобы объединить их, но все COLNAMES точно так же, поэтому я не знаю, какие значения относятся к 2014, 2015 или 2015

Я хочу, чтобы решить эту проблему, добавив в год для всех colnames в трех кадрах данных.

Так что теперь у меня есть:

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 раз;)

спасибо, Arnand

+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]]})