R 将行折叠为一个值
我有一个数据集:R 将行折叠为一个值,r,R,我有一个数据集: LOC Store Question Rating NYC MCD Food quality? 3 NYC MCD Water quality? 4 NYC MCD Cleanliness? 5 LA BK Food quality? 3 LA BK Water quality? 2 LA
LOC Store Question Rating
NYC MCD Food quality? 3
NYC MCD Water quality? 4
NYC MCD Cleanliness? 5
LA BK Food quality? 3
LA BK Water quality? 2
LA BK Cleanliness? 5
SF MCD Food quality? 4
SF MCD Water quality? 5
SF MCD Cleanliness? 4
我想把这些问题分解成每个商店的平均评分:
Loc Store Avg.Rating
NYC MCD (3+4+5)/3
LA BK (3+2+5)/3
SF MCD (4+5+4)/3
tribble
为方便起见:
df <-
tribble(
~LOC, ~Store, ~Question, ~Rating,
"NYC", "MCD", "Food?", 3,
"NYC", "MCD", "Water?", 4,
"NYC", "MCD", "Clean?", 5,
"LA", "BK", "Food?", 3,
"LA", "BK", "Water?", 2,
"LA", "BK", "Clean?", 5,
"SF", "MCD", "Food?", 4,
"SF", "MCD", "Water?", 5,
"SF", "MCD", "Clean?", 4
)
df最简单的方法是使用dplyr中的“groupby”和“summary”
library("tibble")
library("dplyr")
library("magrittr")
df <-
tribble(
~LOC, ~Store, ~Question, ~Rating,
"NYC", "MCD", "Food?", 3,
"NYC", "MCD", "Water?", 4,
"NYC", "MCD", "Clean?", 5,
"LA", "BK", "Food?", 3,
"LA", "BK", "Water?", 2,
"LA", "BK", "Clean?", 5,
"SF", "MCD", "Food?", 4,
"SF", "MCD", "Water?", 5,
"SF", "MCD", "Clean?", 4
)
store.avg <- group_by(df, LOC, Store) %>%
summarize(Avg.Rating = mean(Rating))
# A tibble: 3 x 3
# Groups: LOC [3]
LOC Store Avg.Rating
<chr> <chr> <dbl>
1 LA BK 3.33
2 NYC MCD 4
3 SF MCD 4.33
库(“tibble”)
图书馆(“dplyr”)
图书馆(“magrittr”)
你想要每组的平均值吗<代码>聚合(评级~LOC+存储、df、平均值)
?分组依据
基本上将数据分成具有“LOC”和“存储”独特组合的组<代码>汇总
然后将遍历这些组中的每个组,并对指定列执行一项功能。因此,在这种情况下,它将是每个分组的“评级”列的平均值。