Spectra
Spectra copied to clipboard
Fix is.vector()
This line uses is.vector()
to check if a variable is an atomic vector, not only a vector (including a list):
> is.vector(1:5)
[1] TRUE
> is.vector(list())
[1] TRUE
> is.vector(1:5, "numeric")
[1] TRUE
> is.vector(list(), "list")
[1] TRUE
The solution here is the also specify a mode:
> is.vector(1:5, "numeric")
[1] TRUE
> is.vector(list(), "list")
[1] TRUE
> is.vector(1:5, "list")
[1] FALSE
I would suggest to use
-
!is.vector(list(), "list")
-
!is.list()
in such cases.
For that specific code chunk, there's no final else. We could probably test for
-
is.list(.)
-
inherits(., "List")
- assume the rest are atomic vectors.
@jorainer @sgibb - what do you think?