R indexes vectors starting at 1. Bracket indexing and helper functions select the pieces a script needs.

Program

Play the script to see the first and last city selected from one vector.

indexing.R
Replay: real traced execution (multi-file project)
cities <- c("Paris", "Lima", "Cairo")
first <- cities[1]
last <- tail(cities, 1)
label <- paste(first, "to", last)
cat(label, "\n", sep = "")
  1. cities ← Paris, Lima, Cairo

    1cities <- c("Paris", "Lima", "Cairo")2first <- cities[1]
    values this stepParis, Lima, Cairocities
  2. first ← Paris

    1cities <- c("Paris", "Lima", "Cairo")2first <- cities[1]3last <- tail(cities, 1)
    values this stepParisfirstPariscities[1]
  3. last ← Cairo

    2first <- cities[1]3last <- tail(cities, 1)4label <- paste(first, "to", last)
    values this stepCairolastParis, Lima, Cairocities
  4. label ← Paris to Cairo

    3last <- tail(cities, 1)4label <- paste(first, "to", last)5cat(label, "\n", sep = "")
    values this stepParis to CairolabelParisfirstCairolast
  5. cat(label, " ", sep = "")

    4label <- paste(first, "to", last)5cat(label, "\n", sep = "")
    outputParis to Cairo
    values this stepParis to Cairolabel

Pick First and Last

  1. cities stores Paris, Lima, and Cairo.
  2. cities[1] selects Paris.
  3. tail(cities, 1) selects Cairo.
  4. paste(first, "to", last) builds Paris to Cairo. | Position | City | Used as | | --- | --- | --- | | 1 | Paris | first | | 2 | Lima | neither | | 3 | Cairo | last |
one-based index `cities[1]` selects the first element, not the zeroth.
tail `tail(cities, 1)` selects the final element.
character vector A character vector stores text values in order.

Exercise: indexing.R

Pick the first and last city from a vector and print a route label