Почему я вижу "Error: length(rows) == 1 is not TRUE" с ddply?

у меня есть фрейм данных, скажем, payroll, например:

payroll <- read.table(text="
AgencyName          Rate             PayBasis     Status    NumRate
HousingAuthority    ,843.00   Annual           Full-Time 26843.00
HousingAuthority    ,970.00   ProratedAnnual   Part-Time 14970.00
HousingAuthority    ,843.00   Annual           Full-Time 26843.00
HousingAuthority    ,970.00   ProratedAnnual   Part-Time 14970.00
HousingAuthority    .50           Hourly           Part-Time 13.50
HousingAuthority    ,970.00   ProratedAnnual   Part-Time 14970.00
HousingAuthority    ,843.00   Annual           Full-Time 26843.00", header = TRUE)

"NumRate" на самом деле числовое:

payroll$NumRate <- as.numeric(payroll$NumRate)

и я хотел бы узнать макс, мин и средние зарплаты PayBasis. Я ожидаю, что это сработает:

ddply(payroll, "PayBasis", summarize)

но вместо этого я получаю сообщение об ошибке: Error: length(rows) == 1 is not TRUE

что я пропустила?

1 ответов


вероятно, потому что вы ошиблись summarize на summary (который не будет работать, как вы ожидаете в этом контексте). Вы, наверное, хотели:

ddply(payroll, "PayBasis", summarize,mx = max(NumRate),mn = min(NumRate),avg = mean(NumRate))
        PayBasis      mx      mn     avg
1         Annual 26843.0 26843.0 26843.0
2         Hourly    13.5    13.5    13.5
3 ProratedAnnual 14970.0 14970.0 14970.0

и обязательно посмотрите более внимательно на примеры в ?summarize и ?ddply.