2016-04-03 78 views
2

假設我有一個數據幀,看起來是這樣的:使用dplyr轉換數據幀中的所有列?

set.seed(9782) 
df1 <- data.frame(X1 = rnorm(100, mean=123, sd=6), 
        X2 = rnorm(100, 567, 21), 
        X3 = rnorm(100, 783, 82)) 

我要重新調整DF1的所有列。我可以用下面的代碼:

means <- apply(df1, 2, mean) 
sds <- apply(df1, 2, sd) 
df1Rescaled <- data.frame(t(t(t(t(df1) - means))/sds)) 

我該怎麼做dplyr?

+4

嚴重的是,爲什麼不'規模(DF1)'? –

+0

相關http://www.r-bloggers.com/a-faster-scale-function/ – rawr

+0

@rawr但它沒有管道,它不是由哈德利發佈:( –

回答

3

我們可以用scale

df1New <- df1 %>% 
      mutate_each(funs(scale))