Re: [R] Calculating column differences
Bill I ended up taking a different approach miDat <- miDat %>% mutate(new_cases = cases - lag(cases, default = 0)) - or - df <- df %>% mutate(diff = Score - lag(Score, default = 0)) Jeff -Original Message- From: William Michels Sent: Wednesday, March 24, 2021 1:41 PM To: r-help@r-project.org Cc: reichm...@sbcglobal.net; Gerrit Eichner Subject: Re: [R] Calculating column differences More correctly, with an initial "NA" value in the "diff" column: > df <- data.frame(ID=1:5,Score=4*2:6) > df1 <- rbind(c(0,0), df) > cbind(df1, "diff"=c(NA, diff(df1$Score)) ) ID Score diff 1 0 0 NA 2 1 88 3 2124 4 3164 5 4204 6 5244 > HTH, Bill. On Wed, Mar 24, 2021 at 10:59 AM William Michels wrote: > > Dear Jeff, > > Rather than diff-ing a linear vector you're trying to diff values from > two different rows. Also you indicate that you want to place the > diff-ed value in the 'lower' row of a new column. Try this (note > insertion of an initial "zero" row): > > > df <- data.frame(ID=1:5,Score=4*2:6) > > df1 <- rbind(c(0,0), df) > > cbind(df1, "diff"=c(0, diff(df1$Score)) ) > ID Score diff > 1 0 00 > 2 1 88 > 3 2124 > 4 3164 > 5 4204 > 6 5244 > > > > HTH, Bill. > > W. Michels, Ph.D. > > > > On Wed, Mar 24, 2021 at 9:49 AM Jeff Reichman wrote: > > > > r-help forum > > > > > > > > I'm trying to calculate the diff between two rows and them mutate > > the difference into a new column. I'm using the diff function but > > not giving me what I want. > > > > > > > > df <- data.frame(ID=1:5,Score=4*2:6) > > > > > > > > What a want where > > > > ID Score diff > > > > 1 1 8 8 > > > > 2 212 4 > > > > 3 316 4 > > > > 4 420 4 > > > > 5 524 4 > > > > > > > > What I am getting > > > > ID Score diff > > > > 1 1 8 NA > > > > 2 212 4 > > > > 3 316 4 > > > > 4 420 4 > > > > 5 524 4 > > > > > > > > Jeff > > > > > > > > > > [[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.
Re: [R] Calculating column differences
More correctly, with an initial "NA" value in the "diff" column: > df <- data.frame(ID=1:5,Score=4*2:6) > df1 <- rbind(c(0,0), df) > cbind(df1, "diff"=c(NA, diff(df1$Score)) ) ID Score diff 1 0 0 NA 2 1 88 3 2124 4 3164 5 4204 6 5244 > HTH, Bill. On Wed, Mar 24, 2021 at 10:59 AM William Michels wrote: > > Dear Jeff, > > Rather than diff-ing a linear vector you're trying to diff values from > two different rows. Also you indicate that you want to place the > diff-ed value in the 'lower' row of a new column. Try this (note > insertion of an initial "zero" row): > > > df <- data.frame(ID=1:5,Score=4*2:6) > > df1 <- rbind(c(0,0), df) > > cbind(df1, "diff"=c(0, diff(df1$Score)) ) > ID Score diff > 1 0 00 > 2 1 88 > 3 2124 > 4 3164 > 5 4204 > 6 5244 > > > > HTH, Bill. > > W. Michels, Ph.D. > > > > On Wed, Mar 24, 2021 at 9:49 AM Jeff Reichman wrote: > > > > r-help forum > > > > > > > > I'm trying to calculate the diff between two rows and them mutate the > > difference into a new column. I'm using the diff function but not giving me > > what I want. > > > > > > > > df <- data.frame(ID=1:5,Score=4*2:6) > > > > > > > > What a want where > > > > ID Score diff > > > > 1 1 8 8 > > > > 2 212 4 > > > > 3 316 4 > > > > 4 420 4 > > > > 5 524 4 > > > > > > > > What I am getting > > > > ID Score diff > > > > 1 1 8 NA > > > > 2 212 4 > > > > 3 316 4 > > > > 4 420 4 > > > > 5 524 4 > > > > > > > > Jeff > > > > > > > > > > [[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.
Re: [R] Calculating column differences
Gerrit Changed my approach df <- data.frame(ID=1:5,Score=4*2:6) df %>% mutate(score_diff = Score - lag(Score, default = 0)) Jeff -Original Message- From: R-help On Behalf Of Gerrit Eichner Sent: Wednesday, March 24, 2021 11:53 AM To: r-help@r-project.org Subject: Re: [R] Calculating column differences Dear Jeff, read diff's help page, and you'll find out what is wrong with your expectation. What do think diff(df$Score) should give for the first element in df$Score?? Hth -- Gerrit - Dr. Gerrit Eichner Mathematical Institute, Room 212 <mailto:gerrit.eich...@math.uni-giessen.de> gerrit.eich...@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> http://www.uni-giessen.de/eichner - Am 24.03.2021 um 17:48 schrieb Jeff Reichman: > r-help forum > > > > I'm trying to calculate the diff between two rows and them mutate the > difference into a new column. I'm using the diff function but not > giving me what I want. > > > > df <- data.frame(ID=1:5,Score=4*2:6) > > > > What a want where > >ID Score diff > > 1 1 8 8 > > 2 212 4 > > 3 316 4 > > 4 420 4 > > 5 524 4 > > > > What I am getting > >ID Score diff > > 1 1 8 NA > > 2 212 4 > > 3 316 4 > > 4 420 4 > > 5 524 4 > > > > Jeff > > > > > [[alternative HTML version deleted]] > > __ > <mailto:R-help@r-project.org> R-help@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. > __ <mailto:R-help@r-project.org> R-help@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]] __ 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.
Re: [R] Calculating column differences
Dear Jeff, Rather than diff-ing a linear vector you're trying to diff values from two different rows. Also you indicate that you want to place the diff-ed value in the 'lower' row of a new column. Try this (note insertion of an initial "zero" row): > df <- data.frame(ID=1:5,Score=4*2:6) > df1 <- rbind(c(0,0), df) > cbind(df1, "diff"=c(0, diff(df1$Score)) ) ID Score diff 1 0 00 2 1 88 3 2124 4 3164 5 4204 6 5244 > HTH, Bill. W. Michels, Ph.D. On Wed, Mar 24, 2021 at 9:49 AM Jeff Reichman wrote: > > r-help forum > > > > I'm trying to calculate the diff between two rows and them mutate the > difference into a new column. I'm using the diff function but not giving me > what I want. > > > > df <- data.frame(ID=1:5,Score=4*2:6) > > > > What a want where > > ID Score diff > > 1 1 8 8 > > 2 212 4 > > 3 316 4 > > 4 420 4 > > 5 524 4 > > > > What I am getting > > ID Score diff > > 1 1 8 NA > > 2 212 4 > > 3 316 4 > > 4 420 4 > > 5 524 4 > > > > Jeff > > > > > [[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.
Re: [R] Calculating column differences
Dear Jeff, read diff's help page, and you'll find out what is wrong with your expectation. What do think diff(df$Score) should give for the first element in df$Score?? Hth -- Gerrit - Dr. Gerrit Eichner Mathematical Institute, Room 212 gerrit.eich...@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 24.03.2021 um 17:48 schrieb Jeff Reichman: r-help forum I'm trying to calculate the diff between two rows and them mutate the difference into a new column. I'm using the diff function but not giving me what I want. df <- data.frame(ID=1:5,Score=4*2:6) What a want where ID Score diff 1 1 8 8 2 212 4 3 316 4 4 420 4 5 524 4 What I am getting ID Score diff 1 1 8 NA 2 212 4 3 316 4 4 420 4 5 524 4 Jeff [[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.
[R] Calculating column differences
r-help forum I'm trying to calculate the diff between two rows and them mutate the difference into a new column. I'm using the diff function but not giving me what I want. df <- data.frame(ID=1:5,Score=4*2:6) What a want where ID Score diff 1 1 8 8 2 212 4 3 316 4 4 420 4 5 524 4 What I am getting ID Score diff 1 1 8 NA 2 212 4 3 316 4 4 420 4 5 524 4 Jeff [[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.