0

我想根据两个因素计算总和量表的 z 分数:性别和年龄组(四个因素)。

我怎么能在 R 中做到这一点?我对R真的很陌生,才开始学习,我遇到了

tapply(AgingData$StandMen, list(AgingData$AgeGroups, AgingData$Gender_2),
      FUN= "scale")

但结果不是数据框。我怎样才能把它变成一个数据框?或者还有其他方法吗?

4

1 回答 1

0

如果您提供可重现的示例并显示预期的输出,答案可能会更好。也就是说,结果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,你尝试ddplyplyr

library(plyr)
ddply(AgingData,.(AgeGroups,Gender_2),transform,scale)
于 2013-12-30T06:01:37.393 回答