如何避免ggplot错误:“美学的长度必须为1或与数据相同(84):x,y”?

时间:2018-08-07 05:40:33

标签: r ggplot2 tidyverse

这是我要运行的代码,它给了我上面提到的错误:

dt %>% filter(brand=="volkswagen") %>% 
  filter(Agecat!="NA") %>% 
  group_by(model,Agecat) %>% 
  summarise(Totaldays2close=sum(Days2close)) %>% 
 ## spread(Agecat,Totaldays2close) %>% 
 ## write_csv("Export.csv")


ggplot()+
    geom_col(mapping = aes(x=Agecat,y=Days2close))

其中Agecat是分类变量,而Days2close是否。达成交易所需的天数。您能否建议如何避免以及为什么会出现此错误?

1 个答案:

答案 0 :(得分:0)

您不想在汇总时删除未对列进行分组或汇总的列。使用Mutate,您可以计算每个组的汇总统计信息,同时保留其余数据:

dt %>% filter(brand=="volkswagen") %>% 
  filter(Agecat!="NA") %>% 
  group_by(model,Agecat) %>% 
  mutate(Totaldays2close=sum(Days2close)) %>% 
ggplot()+
    geom_col(mapping = aes(x=Agecat,y=Days2close))

现在应该可以工作。