我需要缩放矩阵,使每列的平均值为1,以便于进行交叉因子比较(我做nmf)。我只发现了比例函数,但我不知道如何使均值为1而不是0.是否可能? 感谢
答案 0 :(得分:3)
这是一个未确定的问题(有多种方法可以做到这一点),但有一种可能性就是将每一列除以其平均值:
scale(m,center=FALSE,scale=colMeans(m))
答案 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