Skip to content

Instantly share code, notes, and snippets.

@briandconnelly
Last active March 31, 2016 00:48
Show Gist options
  • Save briandconnelly/e86aed13a5365248dd042969f557f756 to your computer and use it in GitHub Desktop.
Save briandconnelly/e86aed13a5365248dd042969f557f756 to your computer and use it in GitHub Desktop.
Problems with NSE and lazyeval
get_column_ <- function(.data, colname) {
lazyeval::lazy_eval(colname, .data)
}
get_column <- function(.data, col) {
# Adding .data as the env argument to lazy() is also not working
get_column_(.data=.data, colname=lazyeval::lazy(col))
}
mydata <- data.frame(time = c(1,2,3), value = rnorm(3))
# How can I get data from a column with a conflicting name (i.e., 'time')?
get_column(mydata, time)
@hrbrmstr
Copy link

mebbe:

mydata <- data.frame(time=c(1,2,3),value=rnorm(3))
get_column <- function(.data, colname) {
  lazyeval::lazy_eval(pryr::uneval(colname), data=.data)
}

get_column_ <- function(.data, colname) {
  get(colname, .data)
}

TIME <- "time"

get_column(mydata, time)
get_column(mydata, "time")

get_column_(mydata, TIME)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment