Question: Let's say I have a data frame like this:

```
dat<- data.frame(ID= c("A","A","A","A","B","B", "B", "B"), 
             test= rep(c("pre","post"),4),
             item= c(rep("item1",2), rep("item2",2), rep("item1",2), rep("item2",2)),
             answer= c("1_2_3_4", "1_2_3_4","2_4_3_1","4_3_2_1", "2_4_3_1","2_4_3_1","4_3_2_1","4_3_2_1"))

```

For each group of `ID` and `item`, I want to determine if the levels of `answer` match.

The result data frame would look like this:

```
res<- data.frame(ID= c("A","A","B","B"), 
             item= c("item1","item2","item1","item2"),
             match=c("TRUE","FALSE", "TRUE", "TRUE"))

```

Answer: 
```r
dat<- data.frame(ID= c("A","A","A","A","B","B", "B", "B"), 
             test= rep(c("pre","post"),4),
             item= c(rep("item1",2), rep("item2",2), rep("item1",2), rep("item2",2)),
             answer= c("1_2_3_4", "1_2_3_4","2_4_3_1","4_3_2_1", "2_4_3_1","2_4_3_1","4_3_2_1","4_3_2_1"))

library(data.table)
setDT(dat)

dat[, .(match = all(answer == answer[1])), by = .(ID, item)]
#>        ID   item  match
#>    <char> <char> <lgcl>
#> 1:      A  item1   TRUE
#> 2:      A  item2  FALSE
#> 3:      B  item1   TRUE
#> 4:      B  item2   TRUE

```

Created on 2022-05-04 by the [reprex package](https://reprex.tidyverse.org) (v2.0.1)
In `dplyr`, we can use `group_by` and `summarize` to see if the `answer` column is the same in "pre" and "post" with the same `ID` and `item` columns.

```r
library(dplyr)

dat<- data.frame(ID= c("A","A","A","A","B","B", "B", "B"), 
                 test= rep(c("pre","post"),4),
                 item= c(rep("item1",2), rep("item2",2), rep("item1",2), rep("item2",2)),
                 answer= c("1_2_3_4", "1_2_3_4","2_4_3_1","4_3_2_1", "2_4_3_1","2_4_3_1","4_3_2_1","4_3_2_1"))

dat %>% 
  group_by(ID, item) %>% 
  summarize(match = answer[test == "pre"] == answer[test == "post"])

#> # A tibble: 4 × 3
#> # Groups:   ID [2]
#>   ID    item  match
#>   <chr> <chr> <lgl>
#> 1 A     item1 TRUE 
#> 2 A     item2 FALSE
#> 3 B     item1 TRUE 
#> 4 B     item2 TRUE

```

Created on 2022-05-05 by the [reprex package](https://reprex.tidyverse.org) (v2.0.1)