Cyclomatic Complexity of R Code
Cyclomatic complexity is a software metric (measurement), used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code. It was developed by Thomas J. McCabe, Sr. in 1976.
devtools::install_github("MangoTheCat/cyclocomp")
cyclocomp
takes quoted R expressions or function objects, and returns a single integer, the cyclomatic complexity of the expression or function.
cyclocomp(quote( if (condition) "foo" else "bar" ))
cyclocomp(quote( while (condition) { loop } ))
cyclocomp( function(arg) { calulate(this); and(that) } )
Some more examples for the R control structures. A simple if
first:
cyclocomp(quote({ if (condition) this }))
An if
with an else
branch:
cyclocomp(quote({ if (condition) this else that }))
Loops:
cyclocomp(quote({ for (var in seq) expr }))
cyclocomp(quote({ while (cond) expr }))
cyclocomp(quote({ repeat expr }))
break
and next
statements add to the complexity:
cyclocomp(quote({ for (var in seq) { this break that } }))
cyclocomp(quote({ for (var in seq) { this next that } }))
Multiple (explicit or implicit) return
calls also add to the complexity:
f <- function(arg) { if (arg) { return("this") } else { return("that") } "Otherwise return me" } cyclocomp(f)
MIT © Mango Solutions
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4