library(dplyr)
library(rlang)
as_myclass <- function(d, val.col) {
attr(d, "value.col") <- enquo(val.col)
class(d) <- c("myclass", "data.frame")
d
}
my_mpg <- as_myclass(mtcars, cyl)
str(my_mpg)
my_summarise <- function(d) {
value.col <- attr(d, "value.col")
summ <- summarise(d, mean = mean(!!value.col))
summ
}
my_summarise(my_mpg)
my_wrapper <- function(d) {
my_summarise(d)
}
my_wrapper(my_mpg)
my_summarise_2 <- function(d, st) {
summ <- select_(.data = d, .dots=st)
#summ <- mutate_(.data=d, .dots=mean(st))
summ
}
my_summarise_2(mtcars, "mpg")
my_obj <- as_myclass(d, val.col=my.value)
str(attr(my_obj, "value.col"))
my_mean <- function(d) {
column <- attr(d, "value.col")
browser()
d_summ <- summarise(col, mean.value = mean(!!column))
d_summ
}
my_mean(my_obj)
# Now I'd like to create a new function, which will read the grade attribute and do something with it
mean_grades <- function(d) {
the.grade.col <- !!attr(d, "grade.col")
browser()
avg.grade <- summarise_(d, mean.grade = mean(!!the.grade.col))
}
mean_grades(g)
x <- seq(0, 2 * pi, length = 100)
sinx <- sin(x)
plot(x, sinx, type = "l")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.