Hi, Does R include an equivalent of the linux diff command? Ideally I would like to diff 2 fairly complex strings and extract the differences without having to save them on disk and using a system('diff file1 file2') command. Thanks Sebastien
I do not know what you mean in your string context, as diff in Linux finds lines in files that differ. A reproducible example -- posting guide! -- would be most useful here. However, maybe something of the following strategy might be useful: 1. Break up your strings into lists of string "chunks" relevant for your context via strspit() . Using "" (empty character) as the "sep" string would break your strings into individual characters; "\n" would break it into "lines" separated by the return character; etc. 2. Compare your lists using e.g. lapply() and probably ?match and friends like ?setdiff You should also probably check out the stringr package to see if it contains what you need. Also, if this is gene sequence related, posting on the Bioconductor list rather than here is likely to be more fruitful. 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 Sat, Jan 5, 2019 at 5:58 AM Sebastien Bihorel < sebastien.bihorel at cognigencorp.com> wrote:> Hi, > > Does R include an equivalent of the linux diff command? > > Ideally I would like to diff 2 fairly complex strings and extract the > differences without having to save them on disk and using a system('diff > file1 file2') command. > > Thanks > > Sebastien > > ______________________________________________ > 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 guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
It's the "split" string not the "sep" string, as you and probably everyone else already realizes. And, of course, it could be a regular expression, not literally a character string. -- 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 Sat, Jan 5, 2019 at 7:19 AM Bert Gunter <bgunter.4567 at gmail.com> wrote:> I do not know what you mean in your string context, as diff in Linux finds > lines in files that differ. A reproducible example -- posting guide! -- > would be most useful here. > > However, maybe something of the following strategy might be useful: > > 1. Break up your strings into lists of string "chunks" relevant for your > context via strspit() . Using "" (empty character) as the "sep" string > would break your strings into individual characters; "\n" would break it > into "lines" separated by the return > character; etc. > > 2. Compare your lists using e.g. lapply() and probably ?match and friends > like ?setdiff > > You should also probably check out the stringr package to see if it > contains what you need. Also, if this is gene sequence related, posting on > the Bioconductor list rather than here is likely to be more fruitful. > > 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 Sat, Jan 5, 2019 at 5:58 AM Sebastien Bihorel < > sebastien.bihorel at cognigencorp.com> wrote: > >> Hi, >> >> Does R include an equivalent of the linux diff command? >> >> Ideally I would like to diff 2 fairly complex strings and extract the >> differences without having to save them on disk and using a system('diff >> file1 file2') command. >> >> Thanks >> >> Sebastien >> >> ______________________________________________ >> 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 guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> >[[alternative HTML version deleted]]
Thanks Sorry my mention of "fairly complex strings" was indeed a bit vague, indeed. My code is building strings that contain \n characters so something that could be thought about as multiline strings. For comparing these strings, I was hoping to use something like the linux diff command which is smart enough to recognize these line chunks you mentioned and not just to a simple line-by-line comparison. I saw a few thread mentioning ?adist. I will look into that. Sebastien From: "Bert Gunter" <bgunter.4567 at gmail.com> To: "Sebastien Bihorel" <sebastien.bihorel at cognigencorp.com> Cc: "R-help" <r-help at r-project.org> Sent: Saturday, January 5, 2019 10:19:42 AM Subject: Re: [R] Diff'ing 2 strings I do not know what you mean in your string context, as diff in Linux finds lines in files that differ. A reproducible example -- posting guide! -- would be most useful here. However, maybe something of the following strategy might be useful: 1. Break up your strings into lists of string "chunks" relevant for your context via strspit() . Using "" (empty character) as the "sep" string would break your strings into individual characters; "\n" would break it into "lines" separated by the return character; etc. 2. Compare your lists using e.g. lapply() and probably ?match and friends like ?setdiff You should also probably check out the stringr package to see if it contains what you need. Also, if this is gene sequence related, posting on the Bioconductor list rather than here is likely to be more fruitful. 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 Sat, Jan 5, 2019 at 5:58 AM Sebastien Bihorel < [ mailto:sebastien.bihorel at cognigencorp.com | sebastien.bihorel at cognigencorp.com ] > wrote: Hi, Does R include an equivalent of the linux diff command? Ideally I would like to diff 2 fairly complex strings and extract the differences without having to save them on disk and using a system('diff file1 file2') command. Thanks Sebastien ______________________________________________ [ mailto:R-help at r-project.org | R-help at r-project.org ] mailing list -- To UNSUBSCRIBE and more, see [ https://stat.ethz.ch/mailman/listinfo/r-help | https://stat.ethz.ch/mailman/listinfo/r-help ] PLEASE do read the posting guide [ http://www.r-project.org/posting-guide.html | http://www.R-project.org/posting-guide.html ] and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]]
On Sat, Jan 5, 2019, 14:58 Sebastien Bihorel < sebastien.bihorel at cognigencorp.com wrote:> Hi, > > Does R include an equivalent of the linux diff command? >yes. ?rdiff /martin [[alternative HTML version deleted]]
Don't you mean ?Rdiff ? Hth -- Gerrit --------------------------------------------------------------------- Dr. Gerrit Eichner Mathematical Institute, Room 212 gerrit.eichner at math.uni-giessen.de Justus-Liebig-University Giessen Tel: +49-(0)641-99-32104 Arndtstr. 2, 35392 Giessen, Germany http://www.uni-giessen.de/eichner --------------------------------------------------------------------- Am 10.01.2019 um 08:35 schrieb Martin M?ller Skarbiniks Pedersen:> On Sat, Jan 5, 2019, 14:58 Sebastien Bihorel < > sebastien.bihorel at cognigencorp.com wrote: > >> Hi, >> >> Does R include an equivalent of the linux diff command? >> > > yes. > ?rdiff > > /martin > > [[alternative HTML version deleted]] > > ______________________________________________ > 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 guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
?Rdiff perhaps?? Troels -----Oprindelig meddelelse----- Fra: R-help <r-help-bounces at r-project.org> P? vegne af Martin M?ller Skarbiniks Pedersen Sendt: 10. januar 2019 08:35 Til: Sebastien Bihorel <sebastien.bihorel at cognigencorp.com> Cc: R mailing list <r-help at r-project.org> Emne: Re: [R] Diff'ing 2 strings On Sat, Jan 5, 2019, 14:58 Sebastien Bihorel < sebastien.bihorel at cognigencorp.com wrote:> Hi, > > Does R include an equivalent of the linux diff command? >yes. ?rdiff /martin [[alternative HTML version deleted]] ______________________________________________ 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 guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
From which the diffobj package? From: "Martin M?ller Skarbiniks Pedersen" <traxplayer at gmail.com> To: "Sebastien Bihorel" <sebastien.bihorel at cognigencorp.com> Cc: "R mailing list" <r-help at r-project.org> Sent: Thursday, January 10, 2019 2:35:15 AM Subject: Re: [R] Diff'ing 2 strings On Sat, Jan 5, 2019, 14:58 Sebastien Bihorel < [ mailto:sebastien.bihorel at cognigencorp.com | sebastien.bihorel at cognigencorp.com ] wrote: Hi, Does R include an equivalent of the linux diff command? yes. ?rdiff /martin [[alternative HTML version deleted]]