How to use dplyr::across to check unique values in multiple columns by group?
This code will still treat each column independently. I would like to have the number of unique values across variables DX1:DX4 together.
Here id=1 would have 5 unique values: A,B, C, D, F. ID 2 would also have 5 A, B, C, D, E.
library(dplyr)
x <- dat %>%
group_by(id) %>%
summarize(across(DX1:DX4, n_distinct, na.rm=T))
df <- read.table(header = TRUE, text = "
id DX1 DX2 DX3 DX4
1 A B A A
1 A A A C
1 D A A A
1 A A A F
1 A A A A
2 A A A A
2 A C A A
2 A A A D
2 A E D B
", stringsAsFactors = FALSE)