Here's a very "step by step" example with dplyr as I'm trying to teach myself the Tidyverse way of being
library(dplyr) # Serial Measurement Meas_test Serial_test # 1 17 fail fail # 1 16 pass fail # 2 12 pass pass # 2 8 pass pass # 2 10 pass pass # 3 19 fail fail # 3 13 pass pass dat <- as.data.frame(list(Serial = c(1,1,2,2,2,3,3), Measurement = c(17, 16, 12, 8, 10, 19, 13), Meas_test = c("fail", "pass", "pass", "pass", "pass", "fail", "pass"))) dat %>% group_by(Serial) %>% summarise(Serial_test = sum(Meas_test == "fail")) %>% mutate(Serial_test = if_else(Serial_test > 0, 1, 0), Serial_test = factor(Serial_test, levels = 0:1, labels = c("pass", "fail"))) -> groupedDat dat %>% left_join(groupedDat) # add -> dat to the end to pip to dat Gives: Serial Measurement Meas_test Serial_test 1 1 17 fail fail 2 1 16 pass fail 3 2 12 pass pass 4 2 8 pass pass 5 2 10 pass pass 6 3 19 fail fail 7 3 13 pass fail Would be easier for us if used dput() to share your data but thanks for the minimal example! Chris ----- Original Message ----- > From: "Ivan Krylov" <krylov.r...@gmail.com> > To: "Thomas Subia via R-help" <r-help@r-project.org> > Cc: "Thomas Subia" <tgs...@yahoo.com> > Sent: Sunday, 22 March, 2020 07:24:15 > Subject: Re: [R] Grouping Question > On Sat, 21 Mar 2020 20:01:30 -0700 > Thomas Subia via R-help <r-help@r-project.org> wrote: > >> Serial_test is a pass, when all of the Meas_test are pass for a given >> serial. Else Serial_test is a fail. > > Use by/tapply in base R or dplyr::group_by if you prefer tidyverse > packages. > > -- > Best regards, > Ivan > > ______________________________________________ > 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. -- Chris Evans <ch...@psyctc.org> Visiting Professor, University of Sheffield <chris.ev...@sheffield.ac.uk> I do some consultation work for the University of Roehampton <chris.ev...@roehampton.ac.uk> and other places but <ch...@psyctc.org> remains my main Email address. I have a work web site at: https://www.psyctc.org/psyctc/ and a site I manage for CORE and CORE system trust at: http://www.coresystemtrust.org.uk/ I have "semigrated" to France, see: https://www.psyctc.org/pelerinage2016/semigrating-to-france/ That page will also take you to my blog which started with earlier joys in France and Spain! If you want to book to talk, I am trying to keep that to Thursdays and my diary is at: https://www.psyctc.org/pelerinage2016/ceworkdiary/ Beware: French time, generally an hour ahead of UK. ______________________________________________ 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.