cancel
Showing results for
Search instead for
Did you mean:
New Member

## weighted average calculation in R and DAX -- return same results

Hi, I am computing a weighted average in R using the below code.  I'd like the weighted average result produced in Power BI to match the R code but the results differ -- any thoughts on how I should modify the DAX formula so results in Power BI and R are the same?

R code:

raw_data<-data.frame(group = c(rep("batting sports",3),"contact sports"),
subgroup = c("baseball", "cricket", "softball", "football"),
current_fan_base = c(15873742, 330102240, 92893081, 106040),
popularity_grade = c(.5,.9,NA,.99))

summary <- raw_data %>% group_by(group) %>%
dplyr::summarize(
group_pop_grade = sum(popularity_grade * current_fan_base, na.rm = T)/sum(current_fan_base[!is.na(popularity_grade)]))

R results:

batting sports 0.882
contact sports 0.99

Power BI DAX formula

(created using the quick measure tool, with sum of popularity grade as the base value, current fan base as the weight and group as the category)

popularity_grade weighted by current_fan_base per popularity_grade =

VAR __CATEGORY_VALUES = VALUES('raw_data'[popularity_grade])

RETURN

DIVIDE(

SUMX(

KEEPFILTERS(__CATEGORY_VALUES),

CALCULATE(

SUM('raw_data'[popularity_grade])

* SUM('raw_data'[current_fan_base])

)

),

SUMX(

KEEPFILTERS(__CATEGORY_VALUES),

CALCULATE(SUM('raw_data'[current_fan_base]))

)

)

Power BI DAX results

 group popularity_grade weighted by current_fan_base per popularity_grade contact sports 0.99 batting sports 0.695033924

0 REPLIES 0

## Helpful resources

Announcements

#### Power BI T-Shirt Design Challenge 2023

Vote for your favorite t-shirt design now through March 28.

#### Power BI March 2023 Update

Find out more about the March 2023 update.

#### March 2023 Events

Find out more about the online and in person events happening in March!

Top Solution Authors
Top Kudoed Authors