Description Usage Arguments Details Value Author(s) See Also Examples
Some low-level utility functions to operate on ordinary integer vectors.
1 2 3 4 5 | isSequence(x, of.length=length(x))
toListOfIntegerVectors(x, sep=",")
## more to come...
|
x |
For For |
of.length |
The expected length of the integer sequence. |
sep |
The separator represented as a single-letter string. |
isSequence()
returns TRUE
or FALSE
depending
on whether x
is identical to seq_len(of.length)
or not.
toListOfIntegerVectors()
is a fast and memory-efficient
implementation of
1 | lapply(strsplit(x, sep, fixed=TRUE), as.integer)
|
but, unlike the above code, it will raise an error if the input contains NAs or strings that don't represent integer values.
A list parallel to x
where each list element is an integer
vector.
Hervé Pagès
The seq_len
function in the base
package.
The strsplit
function in the base
package.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ## ---------------------------------------------------------------------
## isSequence()
## ---------------------------------------------------------------------
isSequence(1:5) # TRUE
isSequence(5:1) # FALSE
isSequence(0:5) # FALSE
isSequence(integer(0)) # TRUE
isSequence(1:5, of.length=5) # TRUE (the expected length)
isSequence(1:5, of.length=6) # FALSE (not the expected length)
## ---------------------------------------------------------------------
## toListOfIntegerVectors()
## ---------------------------------------------------------------------
x <- c("1116,0,-19",
" +55291 , 2476,",
"19184,4269,5659,6470,6721,7469,14601",
"7778889, 426900, -4833,5659,6470,6721,7096",
"19184 , -99999")
y <- toListOfIntegerVectors(x)
y
## When it doesn't choke on an NA or string that doesn't represent
## an integer value, toListOfIntegerVectors() is equivalent to
## the function below but is faster and more memory-efficient:
toListOfIntegerVectors2 <- function(x, sep=",")
{
lapply(strsplit(x, sep, fixed=TRUE), as.integer)
}
y2 <- toListOfIntegerVectors2(x)
stopifnot(identical(y, y2))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.