To calculate percentage by group in R, you can use group_by() and mutate() function from dplyr package.
The following method shows how you can do it with syntax.
Method: Use dplyr Package
library(dplyr)
dataframe %>%
group_by(column1) %>%
mutate(percent = column2/sum(column2))
The following example shows how to calculate percentage by group in R.
Use dplyr Package to Calculate Percentage by Group
Let’s see how we can calculate percentage by group in R:
# Import library
library(dplyr)
# Create data frame
df <- data.frame(Machine_name=c("A","B","C","D","A","B","C","D"),
Pressure=c(78.2, 78.2, 71.7, 80.21, 80.21, 82.56, 72.12, 73.85),
Temperature=c(35, 36, 36, 38, 32, 32, 31, 34))
# Calculate percentage of Pressure group by Machine_name
p <- df %>%
group_by(Machine_name) %>%
mutate(percent = Pressure/sum(Pressure))
# Print percentage
print(p)
Output:
Machine_name Pressure Temperature percent
<chr> <dbl> <dbl> <dbl>
1 A 78.2 35 0.494
2 B 78.2 36 0.486
3 C 71.7 36 0.499
4 D 80.2 38 0.521
5 A 80.2 32 0.506
6 B 82.6 32 0.514
7 C 72.1 31 0.501
8 D 73.8 34 0.479
As the output shows percentage of Pressure column which group by Machine_name column of data frame.