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.
::install_github("Gaborcsardi/cyclocomp") devtools
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) {
thisbreak
that
} }))
#> [1] 4
cyclocomp(quote({
for (var in seq) {
thisnext
that
} }))
#> [1] 4
Multiple (explicit or implicit) return
calls also add to
the complexity:
<- function(arg) {
f 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.