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. -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ 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.