我试图将我的数据从长格式重塑为基于多个分组的宽格式,但没有成功。有了这些数据:
id <- 1:20
month <- rep(4:7, 50)
name <- rep(c("sam", "mike", "tim", "jill", "max"), 40)
cost <- sample(1:100, 200, replace=TRUE)
df <- data.frame(id, month, name, cost)
df.mo.mean <- aggregate(df$cost ~ df$name + df$month, FUN="mean")
df.mo.sd <- aggregate(df$cost ~ df$name + df$month, FUN="sd")
df.mo <- data.frame(df.mo.mean, df.mo.sd)
df.mo <- df.mo[,-c(4,5)]
df.mo[3:4] <- round(df.mo[3:4],2)
head(df)
id month name cost
1 1 4 sam 29
2 2 5 mike 93
3 3 6 tim 27
4 4 7 jill 67
5 5 4 max 28
6 6 5 sam 69
我试图让我的数据看起来像下面的东西,并尝试将其概括为未知数量的名称(但最大 <15)
month name1.cost.mean name1.cost.sd name2.cost.mean name2.cost.sd
1 45 4 40 6
2 ...
我试过了,reshape
但没有成功。我能想到的唯一另一种方法是使用循环,这意味着我做错了什么。我没有任何经验,更愿意用基本包解决这个问题(出于学习目的),但如果不可能,任何其他建议都会非常有帮助do.call
rbind
plyr