我正在做一张桌子,上面放着employeeID,工作间和酒类栏。我试图在SQL和R中查询相同的结果,但也面临一些困难。
SELECT EmployeeID, jobtitle,AVG(Salary) OVER(PARTITION BY jobtitle)
FROM EmployeeSalary
这个查询正在缩小正确的result.When,我使用以下代码在R中执行相同的查询:
employee_data %>%
select(employeeid, jobtitle,salary) %>%
group_by(jobtitle) %>%
summarise(mean(salary))
产出只显示职称和平均收入栏。即使我在group_by子句中使用employeeid而不是select。它仍然不起作用
发布于 2022-11-18 15:47:54
您应该在这里使用mutate
而不是summarise
。summarise
只显示来自group_by
的列。
library(dplyr)
employee_data <- data.frame(employeeid = c(1, 2, 3, 4, 5, 6),
jobtitle = c('a', 'a', 'a', 'b', 'b', 'c'),
salary = c(100, 200, 300, 250, 400, 400))
employee_data %>%
select(employeeid, jobtitle,salary) %>%
group_by(jobtitle) %>%
mutate(avg_salary = mean(salary)) %>%
ungroup
#> # A tibble: 6 × 4
#> employeeid jobtitle salary avg_salary
#> <dbl> <fct> <dbl> <dbl>
#> 1 1 a 100 200
#> 2 2 a 200 200
#> 3 3 a 300 200
#> 4 4 b 250 325
#> 5 5 b 400 325
#> 6 6 c 400 400
https://stackoverflow.com/questions/74492041
复制相似问题