Posted on Categories Coding, TutorialsTags , , 1 Comment on R Tip: Get Out of the Habit of Calling View() Directly

R Tip: Get Out of the Habit of Calling View() Directly

R tip: get out of the habit of calling View() directly.

View() only works correctly in interactive environments, not currently in RMarkdown contexts. It is better to call something else that safely dispatches to View(), or to something else depending if you are in an interactive or non-interactive session.

The following code will work interactively, in RMarkdown, or even in a reprex.

#' Invoke a spreadsheet like viewer when appropriate.
#' 
#' @param x R object to view
#' @param title title for viewer
#' @param n number of rows to show
#' @return invoke view or format object
#' 
view <- function(
  x, 
  ...,
  title = as.character(substitute(x)), 
  n = 200) {
  UseMethod("view", x)
}
view.data.frame <- function(
  x, 
  ...,
  title = as.character(substitute(x)), 
  n = 200) {
  wrapr::stop_if_dot_args(substitute(list(...)), 
                          "view")
  if(interactive()) {
    View(x, title = title)
  } else {
    if(require("knitr", 
               character.only = TRUE, 
               quietly = TRUE)) {
      knitr::kable(head(x, n = n), 
                   caption = title)
    } else {
      print(format(head(x, n = n)))
    }
  }
}

view(mtcars)

The above code is a nice safe way to view frames which falls back to a low dependency solution when needed.

For more on wrapr::stop_if_dot_args() please see R Tip: Force Named Arguments.

Posted on Categories Administrativia, StatisticsTags , , , , ,

Speaking on New Tools for R at Big Data Scale

I would like to thank LinkedIn for letting me speak with some of their data scientists and analysts.


IMG 4606
John Mount discussing rquery SQL generation at LinkedIn.

If you have a group using R at database or Spark scale, please reach out ( jmount at win-vector.com ). We (Win-Vector LLC) have some great new tools I’d love to speak on and share. I’d love an invite, especially if your group is in the San Francisco Bay Area.

Note: we also now have a 1/2 to 1 day on-site “Spark for R Users” training offering. Again, please reach out if your team is interested.

Posted on Categories Coding, Statistics, TutorialsTags , , , , 1 Comment on R Tip: Make Arguments Explicit in magrittr/dplyr Pipelines

R Tip: Make Arguments Explicit in magrittr/dplyr Pipelines

I think this is the R Tip that is going to be the most controversial yet. Its potential pitfalls include: it is a style prescription (which makes it different than and less immediately useful than something of the nature of R Tip: Force Named Arguments), and it is heterodox (this is not how magrittr/dplyr is taught by the original authors, and not how it is commonly used). However, I have not been at all good at anticipating which tips get which sort of reception (and this valuable feedback, public and private, is part of what I get of this series).

On to the tip (which only applies if you are a magrittr pipeline user).

R tip: when using magrittr pipelines consider making them more explicit, and more readable (especially to novices) by using explicit dot-arguments throughout.

Continue reading R Tip: Make Arguments Explicit in magrittr/dplyr Pipelines