Hoe op te lossen in r: fout in aggregate.data.frame(): argumenten moeten dezelfde lengte hebben
Een fout die je tegen kunt komen in R is:
Error in aggregate.data.frame(as.data.frame(x), ...): arguments must have same length
Deze fout treedt op wanneer u probeert de functie Aggregate() te gebruiken om de waarden in een of meer kolommen van een dataframe in R samen te vatten, maar u de naam van het dataframe niet kunt opgeven bij het verwijzen naar de kolommen.
In deze tutorial wordt precies uitgelegd hoe u deze fout kunt oplossen.
Hoe de fout te reproduceren
Stel dat we het volgende dataframe in R hebben:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'),
points=c(5, 9, 12, 14, 14, 13, 10, 6, 15, 18))
#view data frame
df
team points
1 to 5
2 to 9
3 to 12
4 to 14
5 to 14
6 B 13
7 B 10
8 B 6
9 C 15
10 C 18
Stel nu dat we de functie Aggregate() proberen te gebruiken om de gemiddelde puntwaarde te berekenen, gegroepeerd per team :
#attempt to calculate mean points value by team
aggregate(df$points, list(' team '), FUN=mean)
Error in aggregate.data.frame(as.data.frame(x), ...):
arguments must have same length
We ontvangen een foutmelding omdat we er niet in zijn geslaagd de naam van het gegevensblok op te geven in het argument list() .
Hoe u de fout kunt oplossen
De manier om deze fout op te lossen is door simpelweg df$team te gebruiken in plaats van alleen maar „team“ in het list() argument:
#calculate mean points value by team
aggregate(df$points, list(df$team), FUN=mean)
Group.1 x
1 A 10.800000
2 B 9.666667
3 C 16.500000
Houd er rekening mee dat we deze keer geen fouten ontvangen omdat we de dataframenaam hebben opgegeven in het argument list() .
Houd er rekening mee dat als u meerdere kolomnamen gebruikt in het list()- argument, u voor elke kolomnaam de dataframenaam moet opgeven, anders krijgt u een foutmelding.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:
Oplossing in R: namen komen niet overeen met eerdere namen
Hoe op te lossen in R: de lengte van een langer object is geen veelvoud van de lengte van een korter object
Hoe op te lossen in R: contrasten kunnen alleen worden toegepast op factoren met 2 of meer niveaus