我想计算每个商店中每个班级的价值份额。这可能是变异吗?
data<-read_excel("data.xlsx")
data2<-data%>%
group_by(Store, Class)%>%
summarise(Values=sum(Value))%>%
mutate(Values2=Valor/???)
我有这样的数据集:
Store Class Value
A 1 100
A 2 200
A 3 300
A 1 200
A 2 400
A 3 600
B 1 10
B 2 20
B 3 30
B 1 20
B 2 40
B 3 60
谢谢!
答案 0 :(得分:0)
对数据框进行分组后,您可以将值列相加两次并查看该操作的行为有所不同:在summarise
内,它将为每个商店和类组合添加所有值。然后在下一行的mutate
中,它将假设您正在剥离第二层分组(在本例中为类),并按商店给出总和。因此,mutate(share = Value / sum(Value))
为每个类产生与商店相关的份额。
library(dplyr)
df <- "Store Class Value
A 1 100
A 2 200
A 3 300
A 1 200
A 2 400
A 3 600
B 1 10
B 2 20
B 3 30
B 1 20
B 2 40
B 3 60" %>% readr::read_table2()
df %>%
group_by(Store, Class) %>%
summarise(Value = sum(Value)) %>%
mutate(share = Value / sum(Value))
#> # A tibble: 6 x 4
#> # Groups: Store [2]
#> Store Class Value share
#> <chr> <int> <int> <dbl>
#> 1 A 1 300 0.167
#> 2 A 2 600 0.333
#> 3 A 3 900 0.5
#> 4 B 1 30 0.167
#> 5 B 2 60 0.333
#> 6 B 3 90 0.5
由reprex package(v0.2.0)创建于2018-06-15。