Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- > system.time(x <- rnorm(10))
- user system elapsed
- 0 0 0
- > system.time(x = rnorm(10))
- Error in system.time(x = rnorm(10)) : unused argument(s) (x = rnorm(10))
- `=` <- function(...) stop("Assignment by = disabled, use <- instead")
- # seems to work
- a = 1
- Error in a = 1 : Assignment by = disabled, use <- instead
- # appears not to break named arguments
- sum(1:2,na.rm=TRUE)
- [1] 3
- temp <- tempfile()
- write("foo = function(...) {
- good <- 0
- bad = 1
- sum(..., na.rm = TRUE)
- }", file = temp)
- library(lint)
- lint(file = temp, style = list(styles.assignment.noeq))
- # Lint checking: C:UsersflodelAppDataLocalTempRtmpwF3pZ6file19ac3b66b81
- # Lint: Equal sign assignemnts: found on lines 1, 3
- `=` <- function(...){
- .what <- as.list(match.call())
- .call <- sprintf('%s <- %s', deparse(.what[[2]]), deparse(.what[[3]]))
- mess <- 'Use <- instead of = for assigment '
- if(getOption('warn_assign', default = T)) {
- stop (mess) } else {
- warning(mess)
- eval(parse(text =.call), envir = parent.frame())
- }
- }
- # with no option set
- z = 1
- ## Error in z = 1 : Use <- instead of = for assigment
- options(warn_assign = T)
- z = 1
- ## Error in z = 1 : Use <- instead of = for assigment
- options(warn_assign = F)
- z = 1
- ## Warning message:
- ## In z = 1 : Use <- instead of = for assigment
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement