0
我有一個DF,如:個以上的亞組總
Country is_sale count
AU 1 10
AU 0 30
SE 1 5
SE 0 4
我想通過國家層面得到每銷售(is_sale = 1),在總的百分比:
國家PERC AU
SE
輸入將是:
country ratio
AU 0.23
SE 0.55
如何用dplyr達到最佳效果?
我有一個DF,如:個以上的亞組總
Country is_sale count
AU 1 10
AU 0 30
SE 1 5
SE 0 4
我想通過國家層面得到每銷售(is_sale = 1),在總的百分比:
國家PERC AU
SE
輸入將是:
country ratio
AU 0.23
SE 0.55
如何用dplyr達到最佳效果?
我會將您的二進制標誌轉換爲布爾值,因爲它使邏輯評估更簡單一些。然後使用dplyr
,您可以按Country
進行分組,並在總結功能的兩個步驟中計算分子和分母。
注意在總結步驟的第二行中引用ratio
的能力;這是使dplyr
非常簡潔的事情之一。
library(dplyr)
Country = c('AU','AU','SE','SE')
is_sale = c(1,0,1,0) %>% as.logical
count = c(10,30,5,4)
df = data.frame(Country, is_sale, count)
df %>%
group_by(Country) %>%
summarize(
ratio = sum(ifelse(is_sale, count, 0)),
ratio = ratio/sum(count)
)
謝謝!我喜歡這個答案 – xxxvinxxx
@docendodiscimus它類似於你的,但我在做這樣一來當您發佈的評論 – akrun
@docendodiscimus您可以張貼,作爲一個解決方案。它看起來非常好。當你提出這個想法時,我不會發布它。我的意思是,我正在做所有的排列/組合來提出一個答案。我剛剛更新了評論,以簡明評論 – akrun
@docendodiscimus我刪除了評論。全是你的。我認爲這是我的錯誤。通常情況下,我不更新這樣的評論 – akrun