By operating on entire vectors at a time, vectorized operations eliminate the need for explicit loops. R processes loops inefficiently, because it interprets the statements in a loop over and over again. Thus, loops with much iteration tend to perform poorly. Vectorized operations help us to get around this bottleneck, while at the same time making our code compact and more elegant.
Several built-in functions are vectorized and step 1 illustrates this with the paste function that concatenates strings.
The later part of step 1 shows that, if the vectors have unequal lengths, then the shorter vector recycles the list of vectors as needed. The new.last.name vector of size 1 repeats itself to match the size of the first.name