R 如何将转换后的变量正确添加到ggplot轴

R 如何将转换后的变量正确添加到ggplot轴,r,ggplot2,R,Ggplot2,我想在y轴上绘制一个转换后的变量(在本例中为平均移位值)。就我的一生而言,我无法理解如何用R来绘制总体结果(而不仅仅是每天平均值的计算总和)。任何帮助都将不胜感激 # set up library(tidyverse) # example data df <- tribble( ~Week, ~Day, ~Team, ~Sales, ~Shifts, "WK1", 1, "A", 100, 1, "WK1", 1, "B", 120,

我想在y轴上绘制一个转换后的变量(在本例中为平均移位值)。就我的一生而言,我无法理解如何用R来绘制总体结果(而不仅仅是每天平均值的计算总和)。任何帮助都将不胜感激

# set up
library(tidyverse)

# example data
df <- 
tribble(
  ~Week, ~Day, ~Team, ~Sales, ~Shifts,
  "WK1", 1,    "A",     100,    1,
  "WK1", 1,    "B",     120,    1,
  "WK1", 2,    "A",     100,    1,
  "WK1", 2,    "B",     120,    1,
  "WK1", 3,    "A",     100,    1,
  "WK1", 3,    "B",     120,    1,
  "WK1", 4,    "A",     100,    1,
  "WK1", 4,    "B",     120,    1,
  "WK1", 5,    "A",     100,    1,
  "WK1", 5,    "B",     120,    1,
  "WK1", 6,    "A",     100,    1,
  "WK1", 6,    "B",     120,    1,
  "WK1", 7,    "A",     100,    1,
  "WK1", 7,    "B",     120,    1
)

# P1: y axis is not the shift average as desired. For example, Team A's shift average should be 100.
ggplot(df, aes(x = Week, y = (Sales/Shifts) )) +
  geom_col() +
  facet_grid(.~ Team)

# P2: ggplot seems to be calculating the sum of each individual day's shift average
ggplot(df, aes(x = Week, y = (Sales/Shifts), fill = Day )) +
  geom_col() +
  facet_grid(.~ Team)

#设置
图书馆(tidyverse)
#示例数据

df我建议总结您的数据并给出您想要绘制的值,而不是尝试使用图形包为您进行数据操作

df_avg = df %>% 
  group_by(Team, Week) %>% 
  summarize(Shift_Avg = mean(Sales / Shifts))
  ## or maybe you want sum(Sales) / sum(Shifts) ? Might be more appropriate

ggplot(df_avg, aes(x = Week, y = Shift_Avg)) +
  geom_col() +
  facet_grid(~ Team)

如果要绘制平均值,需要以某种方式告诉
ggplot
geom\u col
的默认值是
position=“stack”
,用
geom\u col
绘制7行数据,并将每行的值叠加起来。已解决!我的绘图工作正常(实际数据稍微复杂一点)。谢谢,这是正确的方法。尽量限制您希望执行的
ggplot2
数据操作量。使用
dplyr
verbs以正确的格式获取数据,以便首先打印。