The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
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("Gaborcsardi/cyclocomp")library(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" ))#> [1] 2
cyclocomp(quote( while (condition) { loop } ))#> [1] 3
cyclocomp(
function(arg) { calulate(this); and(that) }
)#> [1] 1
cyclocomp(ls)#> [1] 10
cyclocomp(cyclocomp)#> [1] 1
Some more examples for the R control structures. A simple
if first:
cyclocomp(quote({
if (condition) this
}))#> [1] 2
An if with an else branch:
cyclocomp(quote({
if (condition) this else that
}))#> [1] 2
Loops:
cyclocomp(quote({
for (var in seq) expr
}))#> [1] 3
cyclocomp(quote({
while (cond) expr
}))#> [1] 3
cyclocomp(quote({
repeat expr
}))#> [1] 2
break and next statements add to the
complexity:
cyclocomp(quote({
for (var in seq) {
this
break
that
}
}))#> [1] 4
cyclocomp(quote({
for (var in seq) {
this
next
that
}
}))#> [1] 4
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)#> [1] 4
MIT © Mango Solutions; Posit Software, PBC
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.