check_sID {brainGraph} | R Documentation |
Test if an object is a character vector of numbers
Description
check_sID
is a convenience function to test if a vector (typically the
subject ID column in a data.table
) is a character vector of
numbers, a factor vector of numbers, or a numeric vector. If so, it will
zero-pad the variable to have equal width.
pad_zeros
pads a vector with zeros to avoid issues with ordering a
column of integers or integers converted to character
.
Usage
check_sID(x)
pad_zeros(x)
Arguments
x |
|
Details
This function is meant to avoid issues that arise when sorting a vector of
numbers that have been converted to character
. For example,
import_scn
automatically reads in the first column (with
FreeSurfer outputs this is the column of subject IDs) as a
character
variable. If the subject IDs had been all numbers/integers,
then sorting (i.e., setting the key
in a data.table
) would be
incorrect: e.g., it might be '1', '10', '2', ...
.
If “x” is a numeric vector, then the resultant string width will be
determined by max(x)
or x
itself if the input is a single
integer. For example, if x=10
, it will return '01', '02', ...,
'10'
. If “x” is a character vector, then the output's string width
will be max(nchar(x))
. For example, if x
includes both
'1'
and '1000'
, it will return '0001'
, etc.
Value
check_sID
returns either the input vector or a character
vector padded with 0
A character vector with zero-padded values
Examples
pad_zeros(10) # '01' '02' ... '10'
x <- c(1, 10, 100)
pad_zeros(x) # '001' '010' '100'
x <- as.character(x)
pad_zeros(x) # '001' '010' '100'