How to compute each row as a percentage of total in R
· 1 min read · Updated March 15, 2026 · beginner
r percentage dplyr data.table
Computing percentages shows how each value contributes to the total.
With dplyr
library(dplyr)
df <- data.frame(
product = c("A", "B", "C", "D"),
sales = c(150, 300, 100, 450)
)
df %>% mutate(percentage = sales / sum(sales) * 100)
# product sales percentage
# 1 A 150 15
# 2 B 300 30
# 3 C 100 10
# 4 D 450 45
With groups:
df %>% group_by(category) %>% mutate(pct = sales / sum(sales) * 100)
Base R: df$percentage <- df$sales / sum(df$sales) * 100
data.table: dt[, percentage := sales / sum(sales) * 100]
Use na.rm = TRUE in sum() to handle missing values.