Categories: Data Science

Learn R – How to Define Function in R

This article represents code examples in relation with how to write function in R. Please feel free to comment/suggest if I missed to mention one or more important points. Also, sorry for the typos.

Following are the key points described later in this article:

  • Function Definition
  • Code Examples for Functions

 

How to Define Function

Function in R looks like following:

# Function definition
funcName <- function( a, b, c ) {
    return(v) # or simply v
}
# This is how a function is invoked
var1 <- funcName(x,y,x) 

In above code, funcName is the name of the function. a, b, c are parameters. v is return variable

Code Examples for Functions

In the examples below, following four functions are demonstrated:

  • Create an empty Data Frame
  • Add/Append a vector to the data frame
  • Search for a vector in the data frame
  • Print first n rows in the data frame
# Creates an empty Data Frame with two columns namely, Name and Age
# Return the newly created empty data frame with 0 row
createDF <- function() {
  df <- data.frame(name=character(), age=numeric(), stringsAsFactors=F)
  return(df)
}

# Add the vector, c, to the passed data frame, df
# Return the updated data frame
addToDF <- function( df, c) {
  df[nrow(df) + 1,] <- c
  return(df)
}

# Search the data frame for existence of values in vector cv
# Return true if found, else false
searchFromDF <- function( df, cv ) {
  found <- F
  for( i in 1:nrow(df) ) {
    if( df$name[i] == cv[1] && df$age[i] == cv[2] ) {
      found <- T
      break
    }
  }
  found
}

# Print first n rows of the dataframe
phead <- function(df, n) {
  for( i in 1:nrow(df)) {
    if( i < n+1) {
      cat(df[i,]$name,"\t",df[i,]$age,"\n")
    }
  }
}

Following is how the above functions would be invoked:

# Creates an empty data frame
df1 <- createDF()

# Add the vector to the the data frame
df1 <- addToDF(df1, c("Ajitesh", 38))
df1 <- addToDF(df1, c("Aiyana", 9))
df1 <- addToDF(df1, c("Anisha", 4))

# Prints True
searchFromDF(df1, c("Aiyana", 9))
# Prints False
searchFromDF(df1, c("Anisha", 41))

# Prints first 2 rows of the dataframe df1
phead(df1, 2)


 

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.

Recent Posts

Retrieval Augmented Generation (RAG) & LLM: Examples

Last updated: 25th Jan, 2025 Have you ever wondered how to seamlessly integrate the vast…

4 days ago

How to Setup MEAN App with LangChain.js

Hey there! As I venture into building agentic MEAN apps with LangChain.js, I wanted to…

1 week ago

Build AI Chatbots for SAAS Using LLMs, RAG, Multi-Agent Frameworks

Software-as-a-Service (SaaS) providers have long relied on traditional chatbot solutions like AWS Lex and Google…

2 weeks ago

Creating a RAG Application Using LangGraph: Example Code

Retrieval-Augmented Generation (RAG) is an innovative generative AI method that combines retrieval-based search with large…

3 weeks ago

Building a RAG Application with LangChain: Example Code

The combination of Retrieval-Augmented Generation (RAG) and powerful language models enables the development of sophisticated…

3 weeks ago

Building an OpenAI Chatbot with LangChain

Have you ever wondered how to use OpenAI APIs to create custom chatbots? With advancements…

3 weeks ago