Convert Fraction to Decimal in R (2 Examples)


In this tutorial, I’ll illustrate how to convert fractions to decimals in the R programming language.

Table of contents:

Let’s just jump right in!


Example Data

Have a look at the following example data:

frac_num <- c(3/4, 4/5, 5/6)                        # create numeric vector of fractions
class(frac_num)                                     # print data class of frac_num
# "numeric"
frac_char <- c("3/4", "4/5", "5/6")                 # create character vector of fractions
class(frac_char)                                    # print data class of frac_char 
# "character"

I have created two different vectors, one containing the fractions as numerics and the other consisting of fractions as characters.


Example 1: Transform Numeric Vector of Fractions to Decimals

This example explains how to transform a numeric vector of fractions into a vector of decimals. When the fractions are given in the numeric class, like in frac_num, no attempt is needed to convert them to decimals since R immediately executes the division operation. Let’s see how!

decimals <- frac_num                                # define decimals
decimals                                            # print decimals
# [1] 0.7500000 0.8000000 0.8333333

As you can see above, frac_num has been assigned to a new variable called decimals. Then the print of decimals resulted in the corresponding vector of decimals. Needless to say, you would get the same result if you printed frac_num directly.

However, some additional attempts are necessary if the fractional data is recorded as characters. Let’s check it in the next example!

Example 2: Transform Character Vector of Fractions to Decimals

If you have a character vector of fractions, you need to use multiple functions combined. Below, you can see how the decimals are defined using nested functions.

decimals <- unname(sapply(frac_char, function(x) eval(parse(text = x))))  # evaluate fraction expressions as arithmetic operations
decimals                                                                  # print decimals
# [1] 0.7500000 0.8000000 0.8333333

In this example, first, I have parsed the strings into R expressions via parse(), which enables R to evaluate the input as an R code instead of a piece of text. Then to evaluate the expression, which is performing the divisions in this case, I have employed the eval() function.

To repeat the process for each element in frac_char, I have used the sapply() function. Lastly, the unname() function was called to remove the names of the returned vector by the sapply() function.


Video & Further Resources

Do you need further info on the examples of this tutorial? Then I can recommend having a look at the following video on my YouTube channel. I explain the R programming codes of this page in the video:


The YouTube video will be added soon.


In addition, you may want to have a look at the other tutorials on this website.


At this point you should know how to change the fractional quantities to decimals in R. Don’t hesitate to let me know in the comments section below, if you have any further questions.


Cansu Kebabci R Programmer & Data Scientist

This page was created in collaboration with Cansu Kebabci. Have a look at Cansu’s author page to get more information about her professional background, a list of all his tutorials, as well as an overview on her other tasks on Statistics Globe.


Subscribe to the Statistics Globe Newsletter

Get regular updates on the latest tutorials, offers & news at Statistics Globe.
I hate spam & you may opt out anytime: Privacy Policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.