4

I can pipe from ggplot2 to plotly using:

library(tidyverse) library(plotly) diamonds %>% {ggplot(.,aes(carat, price)) + geom_point()} |> ggplotly() 

though I use the magrittr pipe and the base R pipe in the one chain.

Replacing the magrittr pipe with the base R pipe gives:

Error: function '{' not supported in RHS call of a pipe 

Is there a way to just use the base R pipe?

I found R >4.1 syntax: Error: function 'function' not supported in RHS call of a pipe and https://github.com/plotly/plotly.R/issues/1229

Breaking the chain avoids the pipe issue:

p <- diamonds |> ggplot(aes(carat, price)) + geom_point() ggplotly(p) 
0

    2 Answers 2

    4

    Another option is

    library(ggplot2) library(plotly) (diamonds |> ggplot(aes(carat, price)) + geom_point()) |> ggplotly() 
      3

      The native R pipe |> pipes the LHS into the first argument of RHS. It is important that you need to include the function as a function call, which means adding a () at the end of the function name. You can use the following code:

      library(ggplot2) library(plotly) diamonds |> (\(.) { ggplot(., aes(carat, price)) + geom_point() }) () |> ggplotly() 

      Created on 2022-09-17 with reprex v2.0.2

        Start asking to get answers

        Find the answer to your question by asking.

        Ask question

        Explore related questions

        See similar questions with these tags.