Hoe de tapply()-functie in r te gebruiken (met voorbeelden)


De functie tapply() in R kan worden gebruikt om een functie toe te passen op een vector, gegroepeerd door een andere vector.

Deze functie gebruikt de volgende basissyntaxis:

tapper(X, INDEX, FUN, ..)

Goud:

  • X : Een vector waarop een functie moet worden toegepast
  • INDEX : Een vector om te groeperen
  • FUN : De functie die moet worden toegepast

De volgende voorbeelden laten zien hoe u deze functie in de praktijk kunt gebruiken met het volgende dataframe in R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(14, 19, 13, 8, 15, 15, 17, 19),
                 assists=c(4, 3, 3, 5, 9, 14, 15, 12))

#view data frame
df

  team position points assists
1 AG 14 4
2 AG 19 3
3 AF 13 3
4 AF 8 5
5 BG 15 9
6 BG 15 14
7 BF 17 15
8 BF 19 12

Voorbeeld 1: pas een functie toe op een variabele, gegroepeerd op een variabele

De volgende code laat zien hoe u de functie tapply() gebruikt om de gemiddelde puntwaarde te berekenen, gegroepeerd per team :

 #calculate mean of points, grouped by team
tapply(df$points, df$team, mean)

   AB
13.5 16.5

Uit het resultaat kunnen we zien:

  • De gemiddelde puntenwaarde van team A is 13,5 .
  • De gemiddelde puntenwaarde van team B is 16,5 .

Merk op dat je na de functie ook extra argumenten kunt opnemen, zoals na.rm , om aan te geven dat je het gemiddelde wilt berekenen terwijl je de NA-waarden in het dataframe negeert:

 #calculate mean of points, grouped by team
tapply(df$points, df$team, mean, na. rm = TRUE )

   AB
13.5 16.5

Voorbeeld 2: pas een functie toe op een variabele, gegroepeerd door meerdere variabelen

De volgende code laat zien hoe u de functie tapply() gebruikt om de gemiddelde puntwaarde te berekenen, gegroepeerd op team en positie :

 # calculate mean of points, grouped by team and position
tapply(df$points, list(df$team, df$position), mean, na. rm = TRUE )

FG
A 10.5 16.5
B 18.0 15.0

Uit het resultaat kunnen we zien:

  • De gemiddelde puntenwaarde van team A en positie F is 10,5 .
  • De gemiddelde puntenwaarde van team A en positie G is 16,5 .
  • De gemiddelde puntenwaarde van team B en positie F is 18,0 .
  • De gemiddelde puntenwaarde van team B en positie G is 15,0 .

Opmerking : in dit voorbeeld hebben we gegroepeerd op twee variabelen, maar we kunnen zoveel variabelen opnemen als we willen in de functie list() om nog meer variabelen te groeperen.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in R kunt gebruiken:

Hoe de dim()-functie in R te gebruiken
Hoe de functie table() in R te gebruiken
Hoe de sign()-functie in R te gebruiken

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert