Book Image

Learning R Programming

By : Kun Ren
Book Image

Learning R Programming

By: Kun Ren

Overview of this book

R is a high-level functional language and one of the must-know tools for data science and statistics. Powerful but complex, R can be challenging for beginners and those unfamiliar with its unique behaviors. Learning R Programming is the solution - an easy and practical way to learn R and develop a broad and consistent understanding of the language. Through hands-on examples you'll discover powerful R tools, and R best practices that will give you a deeper understanding of working with data. You'll get to grips with R's data structures and data processing techniques, as well as the most popular R packages to boost your productivity from the offset. Start with the basics of R, then dive deep into the programming techniques and paradigms to make your R code excel. Advance quickly to a deeper understanding of R's behavior as you learn common tasks including data analysis, databases, web scraping, high performance computing, and writing documents. By the end of the book, you'll be a confident R programmer adept at solving problems with the right techniques.
Table of Contents (21 chapters)
Learning R Programming
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Using math functions


Mathematical functions are an essential part in all computing environments. R provides several groups of basic math functions.

Basic functions

The basic functions include square root, and exponential and logarithm functions as the following table shows:

Note that sqrt() only works with real numbers. If a negative number is supplied, NaN will be produced:

sqrt(-1)
## Warning in sqrt(-1): NaNs produced
## [1] NaN 

In R, numeric values can be finite, infinite (Inf and -Inf), and NaN values. The following code will produce infinite values.

First, produce a positively infinite value:

1 / 0
## [1] Inf 

Then, produce a negatively infinite value:

log(0)
## [1] -Inf 

There are several test functions to check whether a numeric value is finite, infinite, or NaN:

is.finite(1 / 0)
## [1] FALSE
is.infinite(log(0))
## [1] TRUE 

Using is.infinite(), how can we check whether a numeric value is -Inf? Inequality still works with infinite values...