How to calculate proportion in a table
Calculate proportion in a table, To determine the value of each cell in a table as a proportion of all values, use the prop.table() function in R.
The following is the fundamental syntax for this function:
prop.table(x, margin = NULL)
where:
x: Name of the table
margin: The division margin (1 = row, 2 = column, default is NULL)
Calculate proportion in a table
With the following matrix in R, the following examples explain how to utilize this function in practice.
Principal Component Analysis in R » finnstats
Let’s start by making a matrix.
mx <- matrix(5:12, nrow=2)
view the matrix
mx [,1] [,2] [,3] [,4] [1,] 5 7 9 11 [2,] 6 8 10 12
Approach 1: Use prop.table with margin = NULL
The following code demonstrates how to divide by prop.table() without setting a margin:
prop.table(mx) [,1] [,2] [,3] [,4] [1,] 0.07352941 0.1029412 0.1323529 0.1617647 [2,] 0.08823529 0.1176471 0.1470588 0.1764706
The prop.table() function displays each value as a percentage of the total.
The above example total sum is 68
Cell [1, 1] = 5/68 = 0.07352941
Cell [1, 2] = 7/68 = [1] 0.1029412
And so on…
It’s worth noting that the prop.table() output adds up to 1.
Approach 2: Use prop.table with margin = 1
The following code demonstrates how to divide each individual value by the row sums using prop.table() with margin=1.
prop.table(mx, margin = 1) [,1] [,2] [,3] [,4] [1,] 0.1562500 0.2187500 0.2812500 0.3437500 [2,] 0.1666667 0.2222222 0.2777778 0.3333333
It’s worth noting that the prop.table() output’s values add up to 1.
Approach 3: Use prop.table with margin = 2
The following code demonstrates how to divide each individual value by the column sums using prop.table() with margin=2.
Bubble Chart in R-ggplot & Plotly » (Code & Tutorial) » finnstats
prop.table(mx, margin = 2) [,1] [,2] [,3] [,4] [1,] 0.4545455 0.4666667 0.4736842 0.4782609 [2,] 0.5454545 0.5333333 0.5263158 0.5217391
The sum of the values in the first column of the original table is 5 + 6 = 11.
The proportion become
Cell [1, 1] = 5/11 = 0.4545455
Cell [2, 1] = 6/11 = 0.5454545
And so on…
It’s worth noting that the prop.table() output’s values add up to 1.