Although others may be better able to decipher your messed up html post than I, you are more likely to get a helpful response if you **follow the posting guide** and post in plain text only, using ?dput() to input example data in a form that makes it easy for R helpers to input your data, scrutinize, and respond.
Possibly useful comment: did you double escape the "|" symbol in your gsub() call? ("|" must be escaped with a "\" ; but the "\" must be escaped by a "\" for R to interpret as as a "\" instead of the first part of an escape code such as e.g. "\t" for tab). Example: > gsub("[[:blank:]]+","\\|","a b") [1] "a|b" Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Thu, Jul 28, 2016 at 4:38 PM, Steven Kang <stochastick...@gmail.com> wrote: > Hi R users, > > I would like to convert a string into a data frame by creating a separator > (ie pipe) between each potential fields (then using *read.table* function). > > ie. Here is the dummy input data for illustration > (4 x 5) > > Date Type Description > In Out Net > > 1/1/2016 Share Share margin 1234 > 600 100 500 > > 1/1/2016 Bond Govnt LTM > 0 > > 3/1/2016 JPY RTOP123 > 500 500 > > 5/1/2016 Cash Margin C123 > 50 -500 > > The following *dat* object was read from PDF file and stored as a string > (which requires to be converted to data frame) > > >> *dat* > > [1] “1/01/2016” Share Share margin > 1234 600 100 500” > > [2] “1/01/2016” Bond Govt LTM > 0” > > [3] “3/01/2016” JPY appre RTOP124 > 500 500” > > [4] “5/01/2016” Cash Margin > call 50 -50” > > >> *class(dat)* > > [1] “character” > > Are there any effective ways (ie functions) to insert a pipe as a separator > between the fields (including the empty field) like the following desired > outcome? > > [1] “1/01/2016” | Share|Share margin 1234 |600 | 100 | 500” > > [2] “1/01/2016” | Bond |Govt LTM |||0” > > [3] “3/01/2016” | |JPY appre RTOP124 |500 ||500” > > [4] “5/01/2016” | Cash |Margin call ||50 |-50” > > I was trying *gsub *function to insert a pipe between the fields and > everything appeared to be fine except when the pipe wasn’t inserted as > intended for the empty fields (ie as there are 5 fields, there should be 5 > pipes, but this isn’t the case for records with empty field). > > Any suggestion would be much appreciated. > > > Thanks. > > Steven > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.