Constants

Let’s start by looking at constants. Constants are the basic building blocks for data objects in R: numbers, character values, and symbols.

Numeric Vectors

Numbers are interpreted literally in R:

> 1.1
[1] 1.1
> 2
[1] 2
> 2^1023
[1] 8.988466e+307

You may specify values in hexadecimal notation by prefixing them with 0x:

> 0x1
[1] 1
> 0xFFFF
[1] 65535

By default, numbers in R expressions are interpreted as double-precision floating-point numbers, even when you enter simple integers:

> typeof(1)
[1] "double"

If you want an integer, you can use the sequence notation or the as function to obtain an integer:

> typeof(1:1)
[1] "integer"
> typeof(as(1, "integer"))
[1] "integer"

The sequence operator a:b will return a vector of integers between a and b. To combine an arbitrary set of numbers into a vector, use the c function:

> v <- c(173, 12, 1.12312, -93)

R allows a lot of flexibility when entering numbers. However, there is a limit to the size and precision of numbers that R can represent:

> # limits of precision
> (2^1023 + 1) == 2^1023
[1] TRUE
> # limits of size
> 2^1024
[1] Inf

In practice, this is rarely a problem. Most R users will load data from other sources on a computer (like a database) that also can’t represent very large numbers.

R also supports complex numbers. Complex values are written as real_part+imaginary_parti. For example:

> 0+1i ^ 2
[1] -1+0i
> sqrt(-1+0i)
[1] 0+1i
> exp(0+1i * pi)
[1] -1+0i

Note that the sqrt function returns a value of the same type as its input; it will ...

Get R in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.