我有一個示例數據如下,我想通過sex
來縮放x, y, z
,並返回相同的數據結構。如何編寫代碼來實現它。我可以按組sex
成功縮放一列而不是矩陣my.df
。有人可以幫助我,提前感謝。 此外,如果我只是縮放矩陣my.df
,而不是sex
,scale
效果很好。如何按組縮放矩陣?
set.seed(2016)
my.df <- data.frame(x=rnorm(100, mean=10),
y=rnorm(100, mean=33),
z=runif(100,1,300),
sex=sample(c("M","F"), 100, rep=T),
group=gl(5, 20, labels=LETTERS[1:5]))
以下代碼完全不起作用。
library(plyr)
ddply(my.df, .(sex), transform, scale)
apply(my.df, 2, function(x) ddply(x, .(my.df$sex), scale(x)))
apply(my.df[1:3], 2, function(x) tapply(x, my.df$sex, scale))
我想你可以通過(my.df [C(試試這個'-4,-5 )],my.df $ sex,scale)'。 –
對不起,它不適用於矩陣 –