我想基于两个因素来计算总计量表的z分数:性别和年龄组(四个因素)。
我怎样才能在R中这样做?我是R的新手,只是开始学习,我遇到了
tapply(AgingData$StandMen, list(AgingData$AgeGroups, AgingData$Gender_2),
FUN= "scale")
但结果不是数据框。如何将其转换为数据框?或者还有其他方法吗?
答案 0 :(得分:0)
如果您提供可重现的示例并显示预期的输出,答案会更好。这就是tapply
res <- tapply(AgingData$StandMen, list(AgingData$AgeGroups, AgingData$Gender_2),
FUN= "scale")
是一个尺寸为:
的数组nelevls(AgingData$AgeGroups) x nlevles(AgingData$Gender_2)
您可以在此处使用
将其转换为data.frameas.data.frame(res)
但我怀疑你在寻找什么,我猜你想要以长格式得到结果:
使用reshape2包转换结果:
library(reshape2)
melt(res)
或者您使用,不使用tapply
,并尝试ddply
中的plyr
:
library(plyr)
ddply(AgingData,.(AgeGroups,Gender_2),transform,scale)