2013-06-11 2 views
6

Ich habe einen Datenrahmen, sagen Gehaltsabrechnung, wie:Warum sehe ich "Error: Länge (Zeilen) == 1 ist nicht wahr" mit ddply?

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

Und ich möchte eine kennen die max, min erhalten und bedeuten:

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) 

Die "NumRate" tatsächlich numerisch Gehälter von PayBasis. Ich erwarte, dass dies funktioniert:

ddply(payroll, "PayBasis", summarize) 

Aber anstatt Ich erhalte eine Fehlermeldung: Error: length(rows) == 1 is not TRUE

Was soll ich hier fehlt?

Antwort

3

Wahrscheinlich, weil Sie summarize für summary verwechselt haben (das wird nicht funktionieren, wie Sie in diesem Zusammenhang erwarten). Sie wollten wahrscheinlich:

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 

Und sicher sein, genauer an den Beispielen in ?summarize und ?ddply zu suchen.

Verwandte Themen