У меня есть следующий набор данных
dat <- data.frame(group = c(1,1,1,1,1), id = c(1,2,3,4,5),
t1 = c('a','a','b','b','c'),p1 = c(0.98,1,0.5,0.9,1),
t2 = c('b',NA,'a','c',NA),p2 = c(0.02,NA,0.25,0.10,NA),
t3 = c(NA,NA,'c',NA,NA),p3 = c(NA,NA,0.25,NA,NA))
Я пытаюсь подсчитать количество уникальных символов, присутствующих в нескольких столбцах (t1, t2, t3) в группе, состоящей из нескольких строк (variable = 'group').Подсчитан ли каждый символ, зависит от того, какие значения p1, p2, p3>> 0,05.
Я пытался ввести этот код для подсчета уникальных символов из всех столбцов
b <- dat %>%
group_by(group) %>%
mutate(total = sum(n_distinct(t1[p1 >= 0.05], na.rm = TRUE),
n_distinct(t2[p2 >= 0.05], na.rm = TRUE),
n_distinct(t3[p3 >= 0.05], na.rm = TRUE)))
В результате он подсчитывает уникальные символы t1, t2 и t3, а затем суммирует их, что приводит к следующему набору данных, где «total» равно 6
dat <- data.frame(group = c(1,1,1,1,1), id = c(1,2,3,4,5),
t1 = c('a','a','b','b','c'),p1 = c(0.98,1,0.5,0.9,1),
t2 = c('b',NA,'a','c',NA),p2 = c(0.02,NA,0.25,0.10,NA),
t3 = c(NA,NA,'c',NA,NA),p3 = c(NA,NA,0.25,NA,NA),
total = c(6,6,6,6,6))
Однако, что я собираюсь сделатьподсчитать общее количество уникальных символов во всех столбцах.Другими словами, если «a» было видно в столбце t1, то не считайте «a» в других столбцах (t2, t3).Конечный продукт будет выглядеть следующим набором данных, где «total» равно 3 (обозначая a, b и c как уникальные символы)
dat <- data.frame(group = c(1,1,1,1,1), id = c(1,2,3,4,5),
t1 = c('a','a','b','b','c'),p1 = c(0.98,1,0.5,0.9,1),
t2 = c('b',NA,'a','c',NA),p2 = c(0.02,NA,0.25,0.10,NA),
t3 = c(NA,NA,'c',NA,NA),p3 = c(NA,NA,0.25,NA,NA),
total = c(3,3,3,3,3))
Спасибо за помощь