In R, there are multiple ways to measure the running time of your R Code.
Method 1: Using the Sys.time() function
To measure the execution time of R code, we can use the Sys.time function. Put it before and after the code and take difference of it to get the execution time of code.
start.time <- Sys.time() # Your R code here result <- sum(1:10000) end.time <- Sys.time() time.taken <- round(end.time - start.time,2) time.taken
Result : Time difference of 1.12 secs
Method 2: Using the microbenchmark package
The microbenchmark package allows you to accurately measure the execution time of small code snippets, especially when you need to compare different approaches or functions. You can install the package by using command install.packages("microbenchmark")
Let's take a simple example to measure the running time of two different approaches for calculating the sum of numbers from 1 to N.
Approach 1: Using a loop
Approach 2: Using the sum() function.
# Load the microbenchmark package
library(microbenchmark)
# Function to calculate the sum of numbers from 1 to N using a loop
sum_using_loop <- function(N) {
result <- 0
for (i in 1:N) {
result <- result + i
}
return(result)
}
# Function to calculate the sum of numbers from 1 to N using the sum() function
sum_using_sum <- function(N) {
return(sum(1:N))
}
# Measure the running time using microbenchmark
result <- microbenchmark(
sum_using_loop(10000),
sum_using_sum(10000),
times = 100
)
print(result)
The times parameter sets how many times each function is executed to get a more accurate measurement of the execution time.
See the output below. sum_using_sum() function is significantly faster than the sum_using_loop() function.
expr min lq mean median uq max neval
sum_using_loop(10000) 522.0 566.15 630.333 571.0 600.9 5881.4 100
sum_using_sum(10000) 1.3 1.40 36.513 1.5 1.6 3399.9 100
Method 3: Using the rbenchmark package
The rbenchmark package is another option for benchmarking your R code. It's useful when you want to compare the performance of different functions or versions of your code. You can install the package by using command install.packages("rbenchmark")
# Load the rbenchmark package
library(rbenchmark)
# Function to calculate the sum of numbers from 1 to N using a loop
sum_using_loop <- function(N) {
result <- 0
for (i in 1:N) {
result <- result + i
}
return(result)
}
# Function to calculate the sum of numbers from 1 to N using the sum() function
sum_using_sum <- function(N) {
return(sum(1:N))
}
# Measure the running time using benchmark
result <- benchmark(
sum_using_loop(10000),
sum_using_sum(10000),
replications = 100
)
print(result)
The replications parameter inside the functions determines how many times each function is executed during the benchmarking process.
Output:
test replications elapsed relative user.self sys.self
1 sum_using_loop(10000) 100 0.06 6 0.05 0
2 sum_using_sum(10000) 100 0.01 1 0.01 0

I have a doubt. I'm writing R code as a function statement. for example:
ReplyDeletefile_read<- function(input_file){
df = read.csv(input_file)
return(df)
}
I need to measure the complation time with the date. can i use your start.time and end.time within your function, if so, can you please explain?. or any other ways to do that.
Check out this code -
Deletefile_read<- function(input_file){
start.time <- Sys.time()
df = read.csv(input_file)
end.time <- Sys.time()
print(round(end.time - start.time,2))
return(df)
}
mydata = file_read("C:\\Users\\Deepanshu\\Downloads\\dataset.csv")