Data Science Asked by 3nomis on January 4, 2021
I strictly need to use the summarise_at to compute a weighted mean, with weights based on the values of another column
df %>% summarise_at(.vars = vars(FACTOR,tv:`smart tv/console`),
.funs = weighted.mean, w=INVESTMENT, na.rm=TRUE)
It always shows the error: 'INVESTMENT' is not found.
I then tried with:
df %>%summarise_at(.vars = vars(FACTOR,tv:`smart tv/console`),
.funs = weighted.mean, w=vars(INVESTMENT), na.rm=TRUE)
But in this case : Evaluation error: 'x' and 'w' must have the same length.
Why is this? Am I doing anything wrong? Do you have hints to solve this issue? Thanks
You can specify the weights directly within the weighted.mean()
function, within the call to funs()
like so:
data.frame(x=rnorm(100), y=rnorm(100), weight=runif(100)) %>%
summarise_at(vars(x,y), funs(weighted.mean(., w=weight)))
Answered by mmk on January 4, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP