2017-02-06 3 views
0

Я пытаюсь вернуть среднее значение для каждой группы на основе this SO post, но решение, похоже, не работает в этом случае. Может кто-нибудь объяснить, почему я все еще получаю глобальное значение?dplyr, возвращающий глобальное среднее, когда указаны столбцы

tmp = tempfile(fileext = ".xlsx") 
download.file(url = "https://www.bls.gov/emp/ind-occ-matrix/occupation.xlsx", destfile = tmp, mode="wb") 
library(readxl) 
csv <- read_excel(tmp,sheet=8) 
######################################################## 
colnames(csv)<-c("title","code","Occupation Type","Employment2014","Employment2024" ,"EmploymentChange2014-24.Num","EmploymentChange2014-24.Percent","Percent self employed2014","Job openings due to growth and replacements2014-24","Median annual wage2015","Typical education needed for entry","Work experience in a related occupation","Typical on-the-job training needed") 
csv<-csv[csv[,3]=="Line item",] 
csv$"Median annual wage2015"<-as.numeric(csv$"Median annual wage2015") 

library(dplyr) 
csv%>%group_by(csv$"Typical education needed for entry")%>%summarise(n=n(),mean=mean(csv$"Median annual wage2015",na.rm=T)) 

ответ

0

Неверное использование вашего dplyr. удалите csv$ так. Потому что вы получаете данные для mean из контекста сети dplyr и, следовательно, функцию group_by.

library(dplyr) 
csv %>% 
    group_by(`Typical education needed for entry`) %>% 
    summarise(n=n(), 
    mean=mean(`Median annual wage2015`,na.rm=T)) 

Также вы можете сделать свой код более удобочитаемым (для других) с помощью вкладок и вкладок.

+1

не должно быть 'вместо '? –

+0

Я думаю, что вы правы. Я не привык работать с именами с пробелами в них. – Wietze314