Split the elements of an ordered factor vector
Usage
strsplitOrdered(
  x,
  split = "_",
  fixed = FALSE,
  perl = FALSE,
  useBytes = FALSE,
  sortFunc = jamba::mixedSort,
  keepOrder = TRUE,
  ...
)Arguments
- x
 character or factor vector.
- split
 character split value sent to
base::strsplit().- fixed, perl, useBytes
 additional arguments sent to
base::split().- sortFunc
 function used to sort character values when the input
xis a character vector. The defaultjamba::mixedSort()applies alphanumeric sort.- keepOrder
 logical indicating whether to keep the order of values in the input data, for example with character input the values will be ordered by the first appearance of each term.
- ...
 additional arguments are ignored.
Value
list of factor vectors, where each factor shares the same global factor levels based upon the input data.
Details
This function performs base::strsplit() while trying to maintain
the order of factor levels in the output, based upon the order of
factor levels in the input data.
See also
Other jamses utilities: 
choose_annotation_colnames(),
contrast2comp_dev(),
fold_to_log2fold(),
intercalate(),
list2im_opt(),
log2fold_to_fold(),
make_block_arrow_polygon(),
mark_stat_hits(),
matrix_normalize(),
point_handedness(),
point_slope_intercept(),
shortest_unique_abbreviation(),
shrinkDataFrame(),
shrink_df(),
shrink_matrix(),
sort_samples(),
sub_split_vector(),
update_function_params(),
update_list_elements()
Examples
# first define a vector of sample groups
iGroups <- jamba::nameVector(paste(rep(c("WT", "KO"), each=6),
   rep(c("Control", "Treated"), each=3),
   sep="_"));
iGroups <- factor(iGroups, levels=unique(iGroups));
iGroups;
#> WT_Control_v1 WT_Control_v2 WT_Control_v3 WT_Treated_v1 WT_Treated_v2 
#>    WT_Control    WT_Control    WT_Control    WT_Treated    WT_Treated 
#> WT_Treated_v3 KO_Control_v1 KO_Control_v2 KO_Control_v3 KO_Treated_v1 
#>    WT_Treated    KO_Control    KO_Control    KO_Control    KO_Treated 
#> KO_Treated_v2 KO_Treated_v3 
#>    KO_Treated    KO_Treated 
#> Levels: WT_Control WT_Treated KO_Control KO_Treated
strsplitOrdered(iGroups, "_");
#> [[1]]
#> [1] WT      Control
#> Levels: WT KO Control Treated
#> 
#> [[2]]
#> [1] WT      Control
#> Levels: WT KO Control Treated
#> 
#> [[3]]
#> [1] WT      Control
#> Levels: WT KO Control Treated
#> 
#> [[4]]
#> [1] WT      Treated
#> Levels: WT KO Control Treated
#> 
#> [[5]]
#> [1] WT      Treated
#> Levels: WT KO Control Treated
#> 
#> [[6]]
#> [1] WT      Treated
#> Levels: WT KO Control Treated
#> 
#> [[7]]
#> [1] KO      Control
#> Levels: WT KO Control Treated
#> 
#> [[8]]
#> [1] KO      Control
#> Levels: WT KO Control Treated
#> 
#> [[9]]
#> [1] KO      Control
#> Levels: WT KO Control Treated
#> 
#> [[10]]
#> [1] KO      Treated
#> Levels: WT KO Control Treated
#> 
#> [[11]]
#> [1] KO      Treated
#> Levels: WT KO Control Treated
#> 
#> [[12]]
#> [1] KO      Treated
#> Levels: WT KO Control Treated
#>