我有如下数据集:
> head(worldcup)
Team Position Time Shots Passes Tackles Saves
Abdoun Algeria Midfielder 16 0 6 0 0
Abe Japan Midfielder 351 0 101 14 0
Abidal France Defender 180 0 91 6 0
Abou Diaby France Midfielder 270 1 111 5 0
Aboubakar Cameroon Forward 46 2 16 0 0
Abreu Uruguay Forward 72 0 15 0 0
Run Code Online (Sandbox Code Playgroud)
然后是某些变量的代码计数平均值:
wc_3 <- worldcup %>%
select(Time, Passes, Tackles, Saves) %>%
summarize(Time = mean(Time),
Passes = mean(Passes),
Tackles = mean(Tackles),
Saves = mean(Saves))
Run Code Online (Sandbox Code Playgroud)
输出是:
> wc_3
Time Passes Tackles Saves
1 208.8639 84.52101 4.191597 0.6672269
Run Code Online (Sandbox Code Playgroud)
然后我需要执行如下输出:
var mean
Time 208.8638655
Passes 84.5210084
Tackles 4.1915966
Saves 0.6672269
Run Code Online (Sandbox Code Playgroud)
我试着这样做:
wc_3 <- worldcup %>%
select(Time, Passes, Tackles, Saves) %>%
summarize(Time = mean(Time),
Passes = mean(Passes),
Tackles = mean(Tackles),
Saves = mean(Saves)) %>%
gather(var, mean, Time:Saves, factor_key=TRUE)
Run Code Online (Sandbox Code Playgroud)
输出相同.我的问题是:无论如何以不同的方式执行相同的输出?
这是我的课程,但我的提交被拒绝了.我不知道为什么,但我问过这件事.
请指教
一个选项是gather
首先,按'Var'分组并summarise
获得mean
'Val'
library(dplyr)
library(tidyr)
worldcup %>%
gather(Var, Val, Time:Saves) %>%
filter(Var!= "Shots") %>%
group_by(Var) %>%
summarise(Mean = mean(Val))
Run Code Online (Sandbox Code Playgroud)