Simple when you know how!
Thanks
Sent from mobile device - please excuse any spelling mistakes.
------ Original Message ------
From: William Dunlap
To: Bernard McGarvey
Cc: Ivan Krylov, r-help at r-project.org
Sent: February 11, 2019 at 4:29 PM
Subject: Re: [R] Difficulty with "\\" in string functions....
You can also avoid the issue by using the basename and dirname functions.
>Fname1<- "D:\\Data\\OneDrive\\ISTA Documents\\QT_App\\QT Analysis
Input Data Example WorkBook.xlsx"
>basename(Fname1)
[1] "QT Analysis Input Data Example
WorkBook.xlsx">dirname(Fname1)
[1] "D:/Data/OneDrive/ISTA Documents/QT_App"
Use normalizePath if you need to convert those / to \ on Windows.
Bill Dunlap
TIBCO Software
wdunlaptibco.com(http://tibco.com)
On Mon, Feb 11, 2019 at 12:26 PM Bernard McGarvey<mcgarvey.bernard at
comcast.net(mailto:mcgarvey.bernard at
comcast.net)>wrote:> Brilliant! Thanks a million Ivan.
>
> Lion Bernard McGarvey
>
>
> Director, Fort Myers Beach Lions Foundation, Inc.
>
>
> Retired (Lilly Engineering Fellow).
>
>
> >On February 11, 2019 at 3:13 PM Ivan Krylov<krylov.r00t at
gmail.com(mailto:krylov.r00t at gmail.com)>wrote:
> >
> >
> >On Mon, 11 Feb 2019 15:01:16 -0500 (EST)
> >Bernard McGarvey<mcgarvey.bernard at
comcast.net(mailto:mcgarvey.bernard at comcast.net)>wrote:
> >
> >>Now I try to split it using
> >>
> >>
> >>str_split(Fname1,"\\")
> >>
> >>
> >>but this returns an error
> >>
> >>
> >>Error in stri_split_regex(string, pattern, n = n, simplify >
>>simplify, : Unrecognized backslash escape sequence in pattern.
> >>(U_REGEX_BAD_ESCAPE_SEQUENCE)
> >
> >This happens because the second parameter of str_split is by default a
> >regular expression, and a backslash has a special meaning in regular
> >expressions: when preceding other characters, it may change the way
> >they are interpreted. (For example, w means a literal "w"
> >character, while \w means "any alphanumeric character". On
the
> >other hand, [ starts a character group, but \[ means just an opening
> >square bracket.) See ?regex for more info on that.
> >
> >Since you want a literal backslash, you need to escape it with another
> >backslash: \\
> >
> >But to write a string literal of a double-backslash in R, you need to
> >escape both backslash characters, each with their own backslash:
"\\\\"
> >
> >## fname<- "D:\\Data\\OneDrive\\ISTA Documents\\QT_App\\QT
Analysis
> >Input Data Example WorkBook.xlsx"
> >## message("\\\\")
> >\\
> >## str_split(fname, "\\\\")
> >[[1]]
> >[1] "D:"
> >[2] "Data"
> >[3] "OneDrive"
> >[4] "ISTA Documents"
> >[5] "QT_App"
> >[6] "QT AnalysisInput Data Example WorkBook.xlsx"
> >
> >You can also avoid all layers of the backslash hell (except the first)
> >if you choose to split by fixed strings instead of regular expressions
> >by using stringr::fixed:
> >
> >## str_split(fname, fixed("\\"))
> >
> >--
> >Best regards,
> >Ivan
>
> ______________________________________________
> R-help at r-project.org(mailto:R-help at r-project.org)mailing list -- To
UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
[[alternative HTML version deleted]]