【问题标题】:can someone help me to resolve this issue with R programming?有人可以帮我用 R 编程解决这个问题吗?
【发布时间】:2022-11-19 00:11:18
【问题描述】:

我正在处理一个包含 employeeID、jobtitile 和 salery 列的表。我正在尝试在 SQL 和 R 中查询相同的结果,但遇到了一些困难。

SELECT EmployeeID, jobtitle,AVG(Salary) OVER(PARTITION BY jobtitle)
FROM EmployeeSalary

此查询显示正确的结果。当我使用代码在 R 中执行相同的查询时:

employee_data %>% 
  select(employeeid, jobtitle,salary) %>%
  group_by(jobtitle) %>% 
  summarise(mean(salary))

输出仅显示 jobtitle 和 mean salery 列。即使我在 group_by 子句中使用 employeeid 而不是 select。它仍然没有工作

【问题讨论】:

  • 也许只是将最后一行更改为mutate(mean(salary))

标签: mysql sql r google-analytics


【解决方案1】:

你应该在这里使用mutate而不是summarisesummarise 将只显示来自您的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

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    相关资源
    最近更新 更多