2017-08-11 158 views
0

R新用 我用dplyr :: mutate()创建了一个新变量,我在运行代码时看到df输出中的值,但是当我尝试绘制它时与ggplot,我收到对象未找到错误。我究竟做错了什么?谢谢。如预期用ggplot找不到变量创建的变量

作品:

mutate(avg_inv = (inv_total/sr_count)) 

错误这里:

# Plot avg invoice 
p <- ggplot(df1, aes(x = Date_Group, y = avg_inv)) + 
    geom_bar(stat = "identity", position="dodge") 
p 

错误消息:

在EVAL错误(表达式,ENVIR,enclos):对象 'avg_inv' 不找到

+1

您是否将变异结果保存为'df1'?正如'df1 = mutate(df1,avg_inv ...)'那样。 – aosmith

+0

谢谢我使用df,因此我将df1更改为df,但收到相同的错误 –

+0

可以看到df的头部吗? – CClaire

回答

1

我想你可能不会保存mutate的结果,所以即使结果打印到你的控制台,它也不可用于ggplot2。 Try:

df1 <- df %>% mutate(avg_inv = (inv_total/sr_count)) 
    p <- ggplot(df1, aes(x = Date_Group, y = avg_inv)) + 
       geom_bar(stat = "identity", position="dodge") 
    p 
1

这样的情况如何;这里我正在计算ggplot函数调用中的附加变量。这为我节省了临时变量的麻烦,以保持临时结果并且也没有错误。

data("airquality") 
library(ggplot2) 
library(dplyr) 
p<- ggplot(airquality %>% 
      mutate(somevar=(Month/Day)), aes(x = somevar)) + 
    geom_histogram(position = "stack", stat = "bin", binwidth = 5) 
print(p)