Description Usage Arguments Details Value Author(s) See Also Examples
Split the first field from x
, identified as all the
characters preceeding the first unquoted occurrence of
split
.
1 |
x |
a character vector to be split |
split |
the split character |
Quote |
a quote character: Occurrences of |
... |
optional arguments for grep |
This function was written to help parse data from the US
Department of Health and Human Services on
cyber-security breaches affecting 500 or more individuals.
As of 2014-06-03 the csv version of these data included commas
in quotes that are not sep
characters. this function
was written to split the fields one at a time to allow manual
processing to make it easier to correct parsing errors.
Algorithm:
1. spl1 <- regexpr(split, x, ...)
2. Qt1 <- regexpr(Quote, x, ...)
3. For any (Qt1<spl1), look for Qt2 <- regexpr(Quote, substring(x, Qt1+1)), then look for spl1 <- regexpr(split, substring(x, Qt1+Qt2+1))
4. out <- list(substr(x, 1, spl1-1), substr(x, spl1+1))
A list of length 2: The first component of the list
contains the character strings found before the first unquoted
occurrence of split
. The second component
contains the character strings remaining after the
characters up to the identified split
are removed.
Spencer Graves
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | chars2split <- c(qs00='abcdefg', qs01='abc,def',
qs10a='"abcdefg', qs10b='abc"defg',
qs1.1='"abc,def', qs20='"abc" def',
qs2.1='"ab,c" def', qs21='"abc", def', qs22.1='"a,b",c')
split <- strsplit1(chars2split)
# answer
split. <- list(c(qs00='abcdefg', qs01='abc', qs10a='"abcdefg',
qs10b='abc"defg', qs1.1='"abc,def', qs20='"abc" def',
qs2.1='"ab,c" def', qs21='"abc"', qs22.1='"a,b"'),
c(qs00='', qs01='def', qs10a='',
qs10b='', qs1.1='', qs20='', qs2.1='',
qs21=' def', qs22.1='c') )
all.equal(split, split.)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.