我已经多次在SO上看到这个重塑问题,但无法找到解决我特定问题的方法;
我有一个名为 DF 的数据框(下图),我使用 cast()计算所有感兴趣的行和列的平均值和标准差。
Bulb.means.sd<-cast(DF, Bat.Species~Bulb.Type, c(mean,sd), value="Bat.Passes")
我正在尝试 cast()来自 DF 的原始值,我希望将其作为单个列合并到数据框(上图)中宽幅。但是, cast()正在生成以下错误消息。一旦原始值被同化,我就会考虑使用 ddply 来计算原始值中每行的标准误差(下面的计算)。
Bulb.raw<-cast(DF, Bat.Species~Bulb.Type, value='Bat.Passes')
此错误消息:
Aggregation requires fun.aggregate: length used as default
我尝试使用 ddply 打印出数据框 Bulb.means.sd 中 Control_sd 列中包含的相同值
se <- ddply(Bulb.means.sd, c("Bat.Species"), summarise,
N = length(Control_sd),
se = Control_sd / sqrt(N))
有没有人对如何使用一行代码生成包含每行的均值,标准,偏差和标准误差的 Bulb.means.sd 等数据框有任何建议,或者是有人知道使用函数 ddply()的代码(上面)有什么问题吗?
如果有人能提供帮助,请提前多多感谢,非常感谢。
DF<-structure(list(Bat.Species = structure(c(2L, 8L, 9L, 7L, 6L,
5L, 3L, 1L, 4L, 10L, 2L, 8L, 9L, 7L, 6L, 5L, 3L, 1L, 4L, 10L,
2L, 8L, 9L, 7L, 6L, 5L, 3L, 1L, 4L, 10L, 2L, 8L, 9L, 7L, 6L,
5L, 3L, 1L, 4L, 10L, 2L, 8L, 9L, 7L, 6L, 5L, 3L, 1L, 4L, 10L,
2L, 8L, 9L, 7L, 6L, 5L, 3L, 1L, 4L, 10L, 2L, 8L, 9L, 7L, 6L,
5L, 3L, 1L, 4L, 10L, 2L, 8L, 9L, 7L, 6L, 5L, 3L, 1L, 4L, 10L,
2L, 8L, 9L, 7L, 6L, 5L, 3L, 1L, 4L, 10L, 2L, 8L, 9L, 7L, 6L,
5L, 3L, 1L, 4L, 10L), .Label = c("Barbestrellus barbestrellus",
"Eptesicus.serotinus ", "Myotic brandii", "Myotis daubentonii",
"Nyctalus leileri", "Nyctalus noctule", "Pipestrellus Nasthusii",
"Pipestrellus pipestrelle", "Pipestrellus pygmaeus", "Pleocutus auritus "
), class = "factor"), Bat.Passes = c(0L, 0L, 0L, 0L, 0L, 0L,
3L, 0L, 9L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L,
0L, 4L, 0L, 0L, 3L, 0L, 9L, 0L, 0L, 0L, 7L, 0L, 0L, 0L, 6L, 0L,
0L, 0L, 0L, 86L, 7L, 17L, 0L, 48L, 6L, 2L, 0L, 0L, 0L, 86L, 28L,
8L, 50L, 48L, 1L, 2L, 0L, 0L, 0L, 20L, 0L, 0L, 0L, 0L, 0L, 2L,
1L, 0L, 0L, 8L, 0L, 0L, 3L, 0L, 0L, 2L, 1L, 1L, 0L, 0L, 0L, 0L,
2L, 0L, 0L, 0L, 1L, 5L, 0L, 10L, 1L, 0L, 2L, 0L, 0L, 0L, 1L,
5L), Bulb.Type = structure(c(4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Control",
"LED", "Metal.Halide", "SOX"), class = "factor")), .Names = c("Bat.Species",
"Bat.Passes", "Bulb.Type"), class = "data.frame", row.names = c(NA,
-100L))