Verhoudingen in r berekenen (met voorbeelden)
U kunt de volgende methoden gebruiken om de verhouding tussen de waarden van twee kolommen in R te berekenen:
Methode 1: Gebruik Base R
#calculate ratio between variable1 and variable2 df$ratio <- df$variable1/df$variable1 #calculate ratio between variable1 and variable2, rounded to 2 decimal places df$ratio <- round(df$variable1/df$variable2, 2 )
Methode 2: gebruik dplyr
library (dplyr) #calculate ratio between variable1 and variable2 df <- df %>% mutate(ratio = variable1/variable2) #calculate ratio between variable1 and variable2, rounded to 2 decimal places df <- df %>% mutate(ratio = round(variable1/variable2, 2 ))
In deze tutorial wordt uitgelegd hoe u elke methode in de praktijk kunt gebruiken met het volgende gegevensframe dat het totale aantal schoten weergeeft dat is gemaakt en geprobeerd door verschillende basketbalspelers:
#create data frame
df <- data. frame (players=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
makes=c(4, 4, 3, 6, 7, 8, 3, 10),
attempts=c(12, 7, 5, 6, 10, 12, 5, 19))
#view data frame
df
players makes attempts
1 to 4 12
2 B 4 7
3 C 3 5
4 D 6 6
5 E 7 10
6 F 8 12
7 G 3 5
8:10:19 a.m.
Voorbeeld 1: Bereken verhoudingen met behulp van de R-basis
De volgende code laat zien hoe u de verhouding tussen de waarden van de kolommen met markeringen en pogingen kunt berekenen met behulp van de R-basis:
#calculate ratio between makes and attempts columns
df$ratio <- df$makes/df$attempts
#view updated data frame
df
players makes attempts ratio
1 A 4 12 0.3333333
2 B 4 7 0.5714286
3 C 3 5 0.6000000
4 D 6 6 1.0000000
5 E 7 10 0.7000000
6 F 8 12 0.6666667
7 G 3 5 0.6000000
8:10:19 AM 0.5263158
De verhouding tussen pogingen en pogingen voor de startspeler is 4/12 = 0,33 .
Met andere woorden: de startspeler maakte ongeveer 33% van zijn schotpogingen.
We kunnen de verhoudingswaarden voor alle andere spelers op dezelfde manier interpreteren.
We kunnen ook de functie round() gebruiken om verhoudingswaarden af te ronden tot een bepaald aantal decimalen:
#calculate ratio between makes and attempts columns, rounded to 2 decimal places
df$ratio <- round(df$makes/df$attempts, 2 )
#view updated data frame
df
players makes attempts ratio
1 to 4 12 0.33
2 B 4 7 0.57
3 C 3 5 0.60
4 D 6 6 1.00
5 E 7 10 0.70
6 F 8 12 0.67
7 G 3 5 0.60
8:10:19 0.53
Elk van de waarden in de verhoudingskolom is nu afgerond op twee decimalen.
Voorbeeld 2: Bereken verhoudingen met dplyr
De volgende code laat zien hoe u de verhouding tussen de waarden in de kolommen markeringen en pogingen kunt berekenen met behulp van het dplyr- pakket:
library (dplyr)
#add new column that shows ratio of makes to attempts
df <- df %>%
mutate(ratio = makes/attempts)
#view updated data frame
df
players makes attempts ratio
1 A 4 12 0.3333333
2 B 4 7 0.5714286
3 C 3 5 0.6000000
4 D 6 6 1.0000000
5 E 7 10 0.7000000
6 F 8 12 0.6666667
7 G 3 5 0.6000000
8:10:19 AM 0.5263158
We kunnen ook de functie round() gebruiken om verhoudingswaarden af te ronden tot een bepaald aantal decimalen:
library (dplyr)
#add new column that shows ratio of makes to attempts, rounded to 2 decimal places
df <- df %>%
mutate(ratio = round(makes/attempts, 2 ))
#view updated data frame
df
players makes attempts ratio
1 to 4 12 0.33
2 B 4 7 0.57
3 C 3 5 0.60
4 D 6 6 1.00
5 E 7 10 0.70
6 F 8 12 0.67
7 G 3 5 0.60
8:10:19 0.53
Elk van de waarden in de verhoudingskolom is nu afgerond op twee decimalen.
Merk op dat de base R-methode en de dplyr-methode dezelfde resultaten opleveren.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe unieke waarden te filteren met dplyr
Hoe u op meerdere voorwaarden kunt filteren met behulp van dplyr
Hoe het aantal exemplaren in kolommen in R te tellen