# [R] Grouping Question

Chris Evans chr|@ho|d @end|ng |rom p@yctc@org
Sun Mar 22 07:30:30 CET 2020

```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.r00t using gmail.com>
> To: "Thomas Subia via R-help" <r-help using r-project.org>
> Cc: "Thomas Subia" <tgs77m using 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 using 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 using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> and provide commented, minimal, self-contained, reproducible code.

--
Chris Evans <chris using psyctc.org> Visiting Professor, University of Sheffield <chris.evans using sheffield.ac.uk>
I do some consultation work for the University of Roehampton <chris.evans using roehampton.ac.uk> and other places
but <chris using 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.

```