Writing functions in R
Named functions
Anonymous functions
RStudio code snippets
This is just a small hack for those who use self-defined functions often.
Type “fun” RStudio IDE and hit TAB.
The result will be a skeleton of a new function.
name <- function(variables) {
}One can easily define their own snippet template, i.e. like the one below
name <- function(df, x, y) {
require(tidyverse)
out <-
return(out)
}The option is Edit Snippets in the Global Options -> Code menu.
Passing column names as argument of a function
Sometimes one would like to pass names of columns from a data frame to a function. They may be provided as strings and used in a function using [[. Let’s take a look at the following example, which prints to R console basic stats of selected variables:
basic.stats <- function(dset, vars){
for(i in 1:length(vars)){
print(vars[i])
print(summary(dset[[vars[i]]]))
}
}
basic.stats(iris, c("Sepal.Length", "Petal.Width"))As a result of running above given code, names of selected variables and their basic summary statistics (minima, first quantiles, medians, means, third quantiles and maxima) are printed in R console. The code dset[[vars[i]]] selects i-th element from the argument vars and selects a corresponding column in declared input data set dset. For example, declaring iris[["Sepal.Length"]] alone would print the Sepal.Length column from the iris data set as a vector.
