Hi,

using the library "stringi" allows this:

> unlist(stringr::str_split(x, "\n"))
[1] "abc" "def" ""    "ghi"

Best,
Kimmo

ke, 2025-02-05 kello 09:35 -0500, Duncan Murdoch kirjoitti:
> Thanks to Rui, Peter and Tanvir!  Peter's seems to be the fastest of
> the
> 3 suggestions so far on the little test case, but on the real data
> (where x contains several thousand lines), Rui's seems best.
>
> Duncan
>
> On 2025-02-05 9:13 a.m., peter dalgaard wrote:
> > This also seems to work:
> >
> > > strsplit(paste(x,collapse="\n"),"\n")[[1]]
> > [1] "abc" "def" ""    "ghi"
> >
> >
> > > On 5 Feb 2025, at 14:44 , Duncan Murdoch
> > > <murdoch.dun...@gmail.com> wrote:
> > >
> > > If I have this object:
> > >
> > >   x <- c("abc\ndef", "", "ghi")
> > >
> > > and I write it to a file using `writeLines(x, "test.txt")`, my
> > > text editor sees a 5 line file:
> > >
> > >   1: abc
> > >   2: def
> > >   3:
> > >   4: ghi
> > >   5:
> > >
> > > which is what I'd expect:  the last line in the editor is empty.
> > > If I use `readLines("test.txt")` on that file, I get the vector
> > >
> > >   c("abc", "def", "", "ghi")
> > >
> > > and all of that is fine.
> > >
> > > What I'm looking for is simple code that modifies x to the
> > > `readLines()` output, without actually writing and reading it.
> > >
> > > My first attempt doesn't work:
> > >
> > >   unlist(strsplit(x, "\n"))
> > >
> > > because it leaves out the blank line 3.  I can fix that with this
> > > ugly code:
> > >
> > >   lines <- strsplit(x, "\n")
> > >   lines[sapply(lines, length) == 0] <- list("")
> > >   lines <- unlist(lines)
> > >
> > > Surely there's a simpler way to do this?  I'd like to use just
> > > base functions, no other packages.
> > >
> > > Duncan Murdoch
> > >
> > > ______________________________________________
> > > 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
> > > https://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
> https://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 https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to