Repeats
You will often want to generate repeats of numbers or characters, for which the function is rep. The object that is named in the first argument is repeated a number of times as specified in the second argument. At its simplest, we would generate five 9s like this:
rep(9,5) [1] 9 9 9 9 9
You can see the issues involved by a comparison of these three increasingly complicated uses of the rep function:
rep(1:4, 2) [1] 1 2 3 4 1 2 3 4 rep(1:4, each = 2) [1] 1 1 2 2 3 3 4 4 rep(1:4, each = 2, times = 3) [1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4
In the simplest case, the entire first argument is repeated (i.e. the sequence 1 to 4 is repeated twice). You often want each element of the sequence to be repeated, and this is accomplished with the each argument. Finally, you might want each number repeated and the whole series repeated a certain number of times (here 3 times).
When each element of the series is to be repeated a different number of times, then the second argument must be a vector of the same length as the vector comprising the first argument (length 4 in this example). So if we want one 1, two 2s, three 3s and four 4s we would write:
rep(1:4,1:4)
[1] 1 2 2 3 3 3 4 4 4 4
In the most complex case, there is a different but irregular repeat of each of the elements of the first argument. Suppose that we need four 1s, one 2, four 3s and two 4s. Then we use the concatenation function c to create a vector of length 4 c(4,1,4,2)) which will act as the second argument ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access