How can I write this R expression in the pipe operator format?










-1














I am trying to rewrite this expression to magrittr’s pipe operator:




print(mean(pull(df, height), na.rm=TRUE))




which returns 175.4 for my dataset.



I know that I have to start with the data frame and write it as >df%>% but I’m confused about how to write it inside out. For example, should the na.rm=TRUE go inside mean(), pull() or print()?



UPDATE: I actually figured it out by trial and error...



>df%>%
+pull(height)%>%
+mean(na.rm=TRUE)
+print()

returns 175.4









share|improve this question



















  • 1




    see ?mean. na.rm is an argument to mean
    – Richard Telford
    Nov 11 '18 at 19:11






  • 1




    have you experimented a little bit? Also, tangentially: I'm always a little bit puzzled why people are trying to get such "pure tidy" expressions, except maybe for pedagogical purposes: print(mean(df$height), na.rm=TRUE) (or (mean(na.omit(df$height)))) seems perfectly easy to understand ...
    – Ben Bolker
    Nov 11 '18 at 19:23











  • what have you tried so far? please provide a minimal, complete, and verifiable example
    – landru27
    Nov 11 '18 at 19:30















-1














I am trying to rewrite this expression to magrittr’s pipe operator:




print(mean(pull(df, height), na.rm=TRUE))




which returns 175.4 for my dataset.



I know that I have to start with the data frame and write it as >df%>% but I’m confused about how to write it inside out. For example, should the na.rm=TRUE go inside mean(), pull() or print()?



UPDATE: I actually figured it out by trial and error...



>df%>%
+pull(height)%>%
+mean(na.rm=TRUE)
+print()

returns 175.4









share|improve this question



















  • 1




    see ?mean. na.rm is an argument to mean
    – Richard Telford
    Nov 11 '18 at 19:11






  • 1




    have you experimented a little bit? Also, tangentially: I'm always a little bit puzzled why people are trying to get such "pure tidy" expressions, except maybe for pedagogical purposes: print(mean(df$height), na.rm=TRUE) (or (mean(na.omit(df$height)))) seems perfectly easy to understand ...
    – Ben Bolker
    Nov 11 '18 at 19:23











  • what have you tried so far? please provide a minimal, complete, and verifiable example
    – landru27
    Nov 11 '18 at 19:30













-1












-1








-1







I am trying to rewrite this expression to magrittr’s pipe operator:




print(mean(pull(df, height), na.rm=TRUE))




which returns 175.4 for my dataset.



I know that I have to start with the data frame and write it as >df%>% but I’m confused about how to write it inside out. For example, should the na.rm=TRUE go inside mean(), pull() or print()?



UPDATE: I actually figured it out by trial and error...



>df%>%
+pull(height)%>%
+mean(na.rm=TRUE)
+print()

returns 175.4









share|improve this question















I am trying to rewrite this expression to magrittr’s pipe operator:




print(mean(pull(df, height), na.rm=TRUE))




which returns 175.4 for my dataset.



I know that I have to start with the data frame and write it as >df%>% but I’m confused about how to write it inside out. For example, should the na.rm=TRUE go inside mean(), pull() or print()?



UPDATE: I actually figured it out by trial and error...



>df%>%
+pull(height)%>%
+mean(na.rm=TRUE)
+print()

returns 175.4






r pipe programming-languages data-science magrittr






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 11 '18 at 19:30

























asked Nov 11 '18 at 19:09









P. SN

12




12







  • 1




    see ?mean. na.rm is an argument to mean
    – Richard Telford
    Nov 11 '18 at 19:11






  • 1




    have you experimented a little bit? Also, tangentially: I'm always a little bit puzzled why people are trying to get such "pure tidy" expressions, except maybe for pedagogical purposes: print(mean(df$height), na.rm=TRUE) (or (mean(na.omit(df$height)))) seems perfectly easy to understand ...
    – Ben Bolker
    Nov 11 '18 at 19:23











  • what have you tried so far? please provide a minimal, complete, and verifiable example
    – landru27
    Nov 11 '18 at 19:30












  • 1




    see ?mean. na.rm is an argument to mean
    – Richard Telford
    Nov 11 '18 at 19:11






  • 1




    have you experimented a little bit? Also, tangentially: I'm always a little bit puzzled why people are trying to get such "pure tidy" expressions, except maybe for pedagogical purposes: print(mean(df$height), na.rm=TRUE) (or (mean(na.omit(df$height)))) seems perfectly easy to understand ...
    – Ben Bolker
    Nov 11 '18 at 19:23











  • what have you tried so far? please provide a minimal, complete, and verifiable example
    – landru27
    Nov 11 '18 at 19:30







1




1




see ?mean. na.rm is an argument to mean
– Richard Telford
Nov 11 '18 at 19:11




see ?mean. na.rm is an argument to mean
– Richard Telford
Nov 11 '18 at 19:11




1




1




have you experimented a little bit? Also, tangentially: I'm always a little bit puzzled why people are trying to get such "pure tidy" expressions, except maybe for pedagogical purposes: print(mean(df$height), na.rm=TRUE) (or (mean(na.omit(df$height)))) seems perfectly easy to understand ...
– Ben Bolker
Nov 11 '18 at 19:23





have you experimented a little bit? Also, tangentially: I'm always a little bit puzzled why people are trying to get such "pure tidy" expressions, except maybe for pedagogical purposes: print(mean(df$height), na.rm=TRUE) (or (mean(na.omit(df$height)))) seems perfectly easy to understand ...
– Ben Bolker
Nov 11 '18 at 19:23













what have you tried so far? please provide a minimal, complete, and verifiable example
– landru27
Nov 11 '18 at 19:30




what have you tried so far? please provide a minimal, complete, and verifiable example
– landru27
Nov 11 '18 at 19:30












1 Answer
1






active

oldest

votes


















0














It would be good practice to make a reproducible example, with dummy data like this:



height <- seq(1:30)
weight <- seq(1:30)
df <- data.frame(height, weight)


These pipe operators work with the majority of the tidyverse (not just magrittr). What you are trying to do is actually coming out of dplyr. The na.rm=T is required for many summary variables like mean, sd, as well as certain functions used to gather specific data points like min, max, etc. These functions don't play well with NA values.



df %>% pull(height) %>% mean(na.rm=T) %>% print()


Unless your data is nested you may not even need to use pull



df %>% summarise(mean = mean(height,na.rm=T))


Also, using summarise you can pipe these into another dataframe rather than just printing, and call them out of the dataframe whenever you want.



df %>% summarise(meanHt = mean(height,na.rm=T), sdHt = sd(height,na.rm=T)) -> summary
summary[1]
summary[2]





share|improve this answer




















    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53252208%2fhow-can-i-write-this-r-expression-in-the-pipe-operator-format%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    It would be good practice to make a reproducible example, with dummy data like this:



    height <- seq(1:30)
    weight <- seq(1:30)
    df <- data.frame(height, weight)


    These pipe operators work with the majority of the tidyverse (not just magrittr). What you are trying to do is actually coming out of dplyr. The na.rm=T is required for many summary variables like mean, sd, as well as certain functions used to gather specific data points like min, max, etc. These functions don't play well with NA values.



    df %>% pull(height) %>% mean(na.rm=T) %>% print()


    Unless your data is nested you may not even need to use pull



    df %>% summarise(mean = mean(height,na.rm=T))


    Also, using summarise you can pipe these into another dataframe rather than just printing, and call them out of the dataframe whenever you want.



    df %>% summarise(meanHt = mean(height,na.rm=T), sdHt = sd(height,na.rm=T)) -> summary
    summary[1]
    summary[2]





    share|improve this answer

























      0














      It would be good practice to make a reproducible example, with dummy data like this:



      height <- seq(1:30)
      weight <- seq(1:30)
      df <- data.frame(height, weight)


      These pipe operators work with the majority of the tidyverse (not just magrittr). What you are trying to do is actually coming out of dplyr. The na.rm=T is required for many summary variables like mean, sd, as well as certain functions used to gather specific data points like min, max, etc. These functions don't play well with NA values.



      df %>% pull(height) %>% mean(na.rm=T) %>% print()


      Unless your data is nested you may not even need to use pull



      df %>% summarise(mean = mean(height,na.rm=T))


      Also, using summarise you can pipe these into another dataframe rather than just printing, and call them out of the dataframe whenever you want.



      df %>% summarise(meanHt = mean(height,na.rm=T), sdHt = sd(height,na.rm=T)) -> summary
      summary[1]
      summary[2]





      share|improve this answer























        0












        0








        0






        It would be good practice to make a reproducible example, with dummy data like this:



        height <- seq(1:30)
        weight <- seq(1:30)
        df <- data.frame(height, weight)


        These pipe operators work with the majority of the tidyverse (not just magrittr). What you are trying to do is actually coming out of dplyr. The na.rm=T is required for many summary variables like mean, sd, as well as certain functions used to gather specific data points like min, max, etc. These functions don't play well with NA values.



        df %>% pull(height) %>% mean(na.rm=T) %>% print()


        Unless your data is nested you may not even need to use pull



        df %>% summarise(mean = mean(height,na.rm=T))


        Also, using summarise you can pipe these into another dataframe rather than just printing, and call them out of the dataframe whenever you want.



        df %>% summarise(meanHt = mean(height,na.rm=T), sdHt = sd(height,na.rm=T)) -> summary
        summary[1]
        summary[2]





        share|improve this answer












        It would be good practice to make a reproducible example, with dummy data like this:



        height <- seq(1:30)
        weight <- seq(1:30)
        df <- data.frame(height, weight)


        These pipe operators work with the majority of the tidyverse (not just magrittr). What you are trying to do is actually coming out of dplyr. The na.rm=T is required for many summary variables like mean, sd, as well as certain functions used to gather specific data points like min, max, etc. These functions don't play well with NA values.



        df %>% pull(height) %>% mean(na.rm=T) %>% print()


        Unless your data is nested you may not even need to use pull



        df %>% summarise(mean = mean(height,na.rm=T))


        Also, using summarise you can pipe these into another dataframe rather than just printing, and call them out of the dataframe whenever you want.



        df %>% summarise(meanHt = mean(height,na.rm=T), sdHt = sd(height,na.rm=T)) -> summary
        summary[1]
        summary[2]






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 11 '18 at 19:27









        Michael

        1439




        1439



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53252208%2fhow-can-i-write-this-r-expression-in-the-pipe-operator-format%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Use pre created SQLite database for Android project in kotlin

            Darth Vader #20

            Ondo