Functions and Errors
Defaults
Optional Arguments
Function arguments can have default values. A call can omit the argument and use the default.
Program
Play the script to call greet without passing a name.
defaults.R
Replay: real traced execution (multi-file project)
greet <- function(name = "reader") { paste("Hello", name) }
message <- greet()
cat(message, "\n", sep = "")
greet ← function(name = reader)
1greet <- function(name = "reader") { paste("Hello", name) }2message <- greet()values this stepfunction(name = reader)greetmessage ← Hello reader
1greet <- function(name = "reader") { paste("Hello", name) }2message <- greet()3cat(message, "\n", sep = "")values this stepHello readermessagereadername defaultcat(message, " ", sep = "")
2message <- greet()3cat(message, "\n", sep = "")outputHello readervalues this stepHello readermessage
Follow the Default
greetis defined withname = "reader".- The call is
greet()with no argument. - R uses the default value
reader. paste("Hello", name)makesHello reader.messagestores that text andcatprints it. | step | value | | --- | --- | | defaultname| reader | |message| Hello reader | | stdout | Hello reader |
default argument
`name = "reader"` supplies a value when the caller omits `name`.
function call
`greet()` uses the default because no argument is passed.
last expression
The function returns the value of its last expression.
Exercise: defaults.R
Reproduce the output Hello reader, then trace how the omitted argument uses the default name reader.