Split a string by any number of spaces

r, string, strsplit

Solution

Just use `strsplit` with `\\s+` to split on:

x <- "10012      ----      ----      ----      ----       CAB    UNCH       CAB"
x
# [1] "10012      ----      ----      ----      ----       CAB    UNCH       CAB"
strsplit(x, "\\s+")[[1]]
# [1] "10012" "----"  "----"  "----"  "----"  "CAB"   "UNCH"  "CAB"  
length(.Last.value)
# [1] 8

Or, in this case, `scan` also works:

scan(text = x, what = "")
# Read 8 items
# [1] "10012" "----"  "----"  "----"  "----"  "CAB"   "UNCH"  "CAB"  

Problem

I have the following string: ``` [1] "10012 ---- ---- ---- ---- CAB UNCH CAB" ``` I want to split this string by the gaps, but the gaps have a variable number of spaces. Is there a way to use `strsplit()` function to split this string and return a vector of 8 elements that has removed all of the gaps? One line of code is preferred.

Original source