Hoe u de modus per groep in r kunt berekenen (met voorbeelden)


De modus van een dataset vertegenwoordigt de meest voorkomende waarde.

De R-statistische software heeft geen ingebouwde functie om de modus van een dataset te berekenen, maar u kunt de volgende functie gebruiken om de modus te berekenen:

 find_mode <- function (x) {
  u <- unique(x)
  tab <- tabulate(match(x, u))
  u[tab == max(tab)]
}

De volgende voorbeelden laten zien hoe u deze functie kunt gebruiken om de modus per groep in R te berekenen.

Voorbeeld 1: modus per groep berekenen in R (één modus)

Stel dat we het volgende gegevensframe in R hebben dat de punten weergeeft die zijn gescoord door basketbalspelers van verschillende teams:

 #define data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(5, 7, 7, 9, 12, 12, 10, 14))

#view data frame
df

  team points
1 to 5
2 to 7
3 to 7
4 to 9
5 B 12
6 B 12
7 B 10
8 B 14

We kunnen de volgende code gebruiken om de puntenmodus te berekenen, gegroepeerd per team :

 library (dplyr)

#define function to calculate mode
find_mode <- function (x) {
  u <- unique(x)
  tab <- tabulate(match(x, u))
  u[tab == max(tab)]
}

#calculate mode of 'points' by 'team'
df %>%
  group_by(team) %>%
  summarize(mode_points = find_mode(points))

# A tibble: 2 x 2
  team mode_points
         
1 to 7
2 B 12

Uit de resultaten kunnen we zien:

  • De puntenmodus voor team A is 7 .
  • De puntenmodus voor team B is 12 .

Voorbeeld 2: Bereken modus per groep in R (meerdere modi)

Stel dat we het volgende dataframe in R hebben:

 #define data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(5, 7, 7, 9, 12, 12, 10, 10))

#view data frame
df

  team points
1 to 5
2 to 7
3 to 7
4 to 9
5 B 12
6 B 12
7 B 10
8 B 10

We kunnen de volgende code gebruiken om de puntenmodus te berekenen, gegroepeerd per team :

 library (dplyr)

#define function to calculate mode
find_mode <- function (x) {
  u <- unique(x)
  tab <- tabulate(match(x, u))
  u[tab == max(tab)]
}

#calculate mode of 'points' by 'team'
df %>%
  group_by(team) %>%
  summarize(mode_points = find_mode(points))

# A tibble: 3 x 2
# Groups: team [2]
  team mode_points
         
1 to 7
2 B 12
3 B 10

Uit de resultaten kunnen we zien:

  • De puntenmodus voor team A is 7 .
  • De scoremethode voor team B is 12 en 10 .

In dit voorbeeld kwamen twee puntwaarden het vaakst voor voor Team B. Elk van deze moduswaarden wordt daarom op een aparte regel voor Team B in de uitvoer geretourneerd.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere beschrijvende statistieken in R kunt berekenen:

Hoe de samenvatting van vijf getallen in R te berekenen
Hoe u samenvattende tabellen maakt in R
Hoe de Mean()-functie in R te gebruiken

Einen Kommentar hinzufügen

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