我想根据两个因素计算总和量表的 z 分数:性别和年龄组(四个因素)。
我怎么能在 R 中做到这一点?我对R真的很陌生,才开始学习,我遇到了
tapply(AgingData$StandMen, list(AgingData$AgeGroups, AgingData$Gender_2),
FUN= "scale")
但结果不是数据框。我怎样才能把它变成一个数据框?或者还有其他方法吗?
如果您提供可重现的示例并显示预期的输出,答案可能会更好。也就是说,结果tapply
res <- tapply(AgingData$StandMen, list(AgingData$AgeGroups, AgingData$Gender_2),
FUN= "scale")
是一个具有维度的数组:
nelevls(AgingData$AgeGroups) x nlevles(AgingData$Gender_2)
在这里,您可以使用将其转换为 data.frame
as.data.frame(res)
但我怀疑你正在寻找什么,我想你也想得到长格式的结果:
您使用 reshape2 包来转换结果:
library(reshape2)
melt(res)
或者你使用,你不使用tapply
,你尝试ddply
从plyr
:
library(plyr)
ddply(AgingData,.(AgeGroups,Gender_2),transform,scale)