Я пытаюсь подсчитать количество уникальных символов в нескольких столбцах (t1, t2, t3) и поместить это значение в новую переменную. То, считается ли символ, зависит от значения другого столбца, с которым он связан (p1, p2, p3), больше или равного 0,05. Например. У меня есть следующий набор данных:
dat <- data.frame(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 для данной строки, и поместить это число в новую переменную (total), которая должна иметь вывод, подобный так:
output <- data.frame(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(1,1,3,2,1))
Используя dplyr, я могу считать уникальные символы в t1, t2 и t3 с помощью этого кода:
output <- dat %>%
group_by(id) %>%
mutate(total = n_distinct(c(t1,t2,t3), na.rm = TRUE))
Однако я не могу установить условия, при которых p1, p2 и p3 должны быть> = 0,05, если t1, t2 или t3, соответственно, будут учитываться для достижения желаемого результата. Есть ли способ установить это условие для каждого столбца t1, t2, t3? Спасибо за вашу помощь.