2016-09-05 23 views
1

多くの列の名前を変更したい。今度は、各列の文章を書き換えます。関数型プログラミングでdplyrで列の名前を変更

df <- data.frame(col1 = 1:4, col2 = c('a', 'b', 'c', 'd'), col3 = rep(1,4)) 
df %>% 
    rename(col1 = col1_new) %>% 
    rename(col2 = col2_new) %>% 
    rename(col3 = col3_new) 

名前の変更ステートメントの重複を避けるにはどうすればよいですか? Rで関数型プログラミングを使用するソリューションはありますか?

+1

renameは複数のvarsで動作します。 'アイリス%>名前の変更(petal_length = Petal.Length、petal_width = Petal.Width)' – phiver

答えて

6

%>%内で行う必要があり、そのような全てのステップのような制限なしがない場合、より簡単かつ一般的なアプローチは

ある rename

df %>% 
    setNames(., paste0(names(.), "_new")) 
# col1_new col2_new col3_new 
#1  1  a  1 
#2  2  b  1 
#3  3  c  1 
#4  4  d  1 

よりもsetNamesを使用することが容易です

colnames(df) <- paste0(colnames(df), "_new")