【发布时间】:2016-01-21 10:47:16
【问题描述】:
我有一个示例数据如下,我想将x, y, z 缩放sex,并返回相同的数据结构。如何编写代码来实现它。我可以按组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))
【问题讨论】:
-
我想你可以试试这个
by(my.df[,c(-4,-5)], my.df$sex, scale)。 -
对不起,它不适用于矩阵