2016-03-01 113 views
0

我需要縮放矩陣,使每列的平均值爲1,以促進跨因子比較(我正在做nmf)。我只發現了比例函數,但我不知道如何讓平均值爲1而不是0。可能嗎? 由於使矩陣的平均值= 1

+0

您可以將1加到比例矩陣 –

回答

1

scale()幫助:

如果center是具有長度等於x的 列數的數值矢量,則x的每一列具有從 中心從減去對應的值它。

例如:

df <- data.frame(rnorm (10 , 10), rnorm (10 , 5)) 
colMeans(df) 

df2 <- scale(df , center = colMeans(df)-1 , scale = FALSE) 

colMeans(df) 
> rnorm.10..10. rnorm.10..5. 
>  9.626982  4.657919 
colMeans(df2) 
> rnorm.10..10. rnorm.10..5. 
>    1    1 
+0

或'df2 < - 1 +比例(df,scale = FALSE)'? –

+0

是的,同樣的事情。 –

3

這是一個欠定問題(不止一種方法去做一件事),但一個可能性是由它的平均分每一列:

scale(m,center=FALSE,scale=colMeans(m))