Vectors
When using R, you will frequently encounter the six basic
vector types. R includes several different ways to create a new vector.
The simplest one is the c
function,
which combines its arguments into a vector:
> # a vector of five numbers > v <- c(.295, .300, .250, .287, .215) > v [1] 0.295 0.300 0.250 0.287 0.215
The c
function also coerces all of its arguments into
a single type:
> # creating a vector from four numbers and a char > v <- c(.295, .300, .250, .287, "zilch") > v [1] "0.295" "0.3" "0.25" "0.287" "zilch"
You can use the c
function to
recursively assemble a vector from other data structures using the
recursive=TRUE
option:
> # creating a vector from four numbers and a list of > # three more > v <- c(.295, .300, .250, .287, list(.102, .200, .303), recursive=TRUE) > v [1] 0.295 0.300 0.250 0.287 0.102 0.200 0.303
But beware of using a list as an argument, as you will get back a list:
> v <- c(.295, .300, .250, .287, list(.102, .200, .303), recursive=TRUE) > v [1] 0.295 0.300 0.250 0.287 0.102 0.200 0.303 > typeof(v) [1] "double" > v <- c(.295, .300, .250, .287, list(1, 2, 3)) > typeof(v) [1] "list" > class(v) [1] "list" > v [[1]] [1] 0.295 [[2]] [1] 0.3 [[3]] [1] 0.25 [[4]] [1] 0.287 [[5]] [1] 1 [[6]] [1] 2 [[7]] [1] 3
Another useful tool for assembling a vector is the “:” operator. This operator creates a sequence of values from the first operand to the second operand:
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
A more flexible function is the seq
function:
> seq(from=5, to=25, by=5) ...
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.