Ответ 1
Это работает:
> groupAcres <- ddply(mydata, c("state"), function(df) c(myName=sum(df$acres)))
> groupAcres
state myName
1 A 56.87973
2 B 57.84451
3 C 52.82415
Хэдли включил меня в пакет plyr, и я все время использую его, чтобы делать "группу", Но мне приходится постоянно переименовывать полученные столбцы, поскольку они по умолчанию соответствуют V1, V2 и т.д.
Вот пример:
mydata<-data.frame(matrix(rnorm(144, mean=2, sd=2),72,2),c(rep("A",24),rep("B",24),rep("C",24)))
colnames(mydata) <- c("x_value", "acres", "state")
groupAcres <- ddply(mydata, c("state"), function(df)c(sum(df$acres)))
colnames(groupAcres) <- c("state","stateAcres")
Есть ли способ заставить ddply называть полученный столбец для меня, чтобы я мог опустить эту последнюю строку?
Это работает:
> groupAcres <- ddply(mydata, c("state"), function(df) c(myName=sum(df$acres)))
> groupAcres
state myName
1 A 56.87973
2 B 57.84451
3 C 52.82415
Используйте суммирование (или суммирование):
groupAcres <- ddply(mydata, "state", summarise,
myName = sum(acres))