ggplot2:使用%+%绘制新数据

Ken*_*ams 5 r ggplot2

当我尝试使用%+%运算符重新编写包含新数据的现有绘图时,我遇到了麻烦.我的代码看起来像这样:

df <- data.frame(ending=now()+hours(0:5), actual=runif(6), pred=runif(6))
p <- ggplot(df, aes(x=ending)) +
  geom_line(aes(y=actual, color='Actual')) +
  geom_line(aes(y=pred, color='Predicted')) +
  ylab('Faults') +
  scale_color_manual('Values', c("Predicted"="red", "Actual"="black"))
p
Run Code Online (Sandbox Code Playgroud)

这很好.但是当我尝试替换新的时df,我遇到了错误:

p1 %+% df
Error in bl1$get_call : $ operator is invalid for atomic vectors
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Ken*_*ams 5

当然,我发帖后立即就找到了答案——不是ggplot2's%+%操作员。另一个命名空间冲突。该mboost软件包还提供了一个%+%运算符。

我通过这样做“解决”了这个问题detach(package:mboost)。我也可以通过做类似的事情来解决它

replot <- get('%+%', 'package:ggplot2')
replot(p, df)
Run Code Online (Sandbox Code Playgroud)

避免命名空间冲突的解决方案是最好的,但我不知道该怎么做。