为什么我用ddply看到"错误:长度(行)== 1不为TRUE"?

Ama*_*nda 7 r summary plyr

我有一个数据框,比如工资单,如:

payroll <- read.table(text="
AgencyName          Rate             PayBasis     Status    NumRate
HousingAuthority    $26,843.00   Annual           Full-Time 26843.00
HousingAuthority    $14,970.00   ProratedAnnual   Part-Time 14970.00
HousingAuthority    $26,843.00   Annual           Full-Time 26843.00
HousingAuthority    $14,970.00   ProratedAnnual   Part-Time 14970.00
HousingAuthority    $13.50           Hourly           Part-Time 13.50
HousingAuthority    $14,970.00   ProratedAnnual   Part-Time 14970.00
HousingAuthority    $26,843.00   Annual           Full-Time 26843.00", header = TRUE)
Run Code Online (Sandbox Code Playgroud)

"NumRate"实际上是数字:

payroll$NumRate <- as.numeric(payroll$NumRate)
Run Code Online (Sandbox Code Playgroud)

而且我想通过PayBasis了解最高,最低和平均工资.我希望这可行:

ddply(payroll, "PayBasis", summarize)
Run Code Online (Sandbox Code Playgroud)

但相反,我得到一个错误: Error: length(rows) == 1 is not TRUE

我在这里错过了什么?

jor*_*ran 4

可能是因为您误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
Run Code Online (Sandbox Code Playgroud)

?summarize并且一定要更仔细地查看和中的示例?ddply