# How to Calculate Ratios in R (With Examples)

You can use the following methods to calculate the ratio between values in two columns in R:

Method 1: Use 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)
```

Method 2: Use 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))```

This tutorial explains how to use each method in practice with the following data frame that shows the total shots made and attempted by various basketball players:

```#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       A     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       H    10       19
```

## Example 1: Calculate Ratios Using Base R

The following code shows how to calculate the ratio between the values in the makes and attempts columns using base R:

```#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       H    10       19  0.5263158```

The ratio of makes to attempts for the first player is 4 / 12 = 0.33.

In other words, the first player made about 33% of their shot attempts.

We can interpret the ratio values for every other player in a similar manner.

We can also use the round() function to round the ratio values to a certain number of decimal places:

```#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       A     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       H    10       19  0.53
```

Each of the values in the ratio column are now rounded to two decimal places.

## Example 2: Calculate Ratios Using dplyr

The following code shows how to calculate the ratio between the values in the makes and attempts columns using the dplyr package:

```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       H    10       19  0.5263158
```

We can also use the round() function to round the ratio values to a certain number of decimal places:

```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       A     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       H    10       19  0.53
```

Each of the values in the ratio column are now rounded to two decimal places.

Notice that the base R method and the dplyr method produce the same results.