Как я могу создать новую переменную, используя 2 столбца, которые удовлетворяют определенным условиям, используя RStudio - PullRequest
0 голосов
/ 30 января 2020

Я хотел бы создать столбец статуса заражения для отдельных лиц. В моем наборе данных Malaria_RDT является тестом на диагностику малярии c, а CCA_test является тестом на диагностику шистосомоза c.

Я хочу, чтобы моя новая переменная статуса инфекции была либо; ТОЛЬКО малярийная инфекция, ТОЛЬКО шистосомозная инфекция, ни малярия, ни шистосомозная инфекция, ни малярия, ни шистосомозная инфекция

Мой набор данных называется co.inf

if Malaria_RDT==0 and CCA_test==0, then inf.st = 0;
if Malaria_RDT >0 and CCA_test==0, then inf.st = 1;
if Malaria_RDT==0 and CCA_test >0, then inf.st = 2; and
if Malaria_RDT >=1 and CCA_test >=1, then inf.st = 3

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Это вариант использования для dplyr::case_when():

co.inf %>%
  mutate(inf.st = case_when(Malariad_RDT == 0 & CC_test == 0 ~ 0,
                            Malariad_RDT > 0 & CC_test == 0 ~ 1,
                            Malariad_RDT == 0 & CC_test > 0 ~ 0,
                            Malariad_RDT >= 1 & CC_test >= 1 ~ 0
                            ))
0 голосов
/ 30 января 2020

Это должно работать:

co.inf$inf.st <- if (co.inf$Malaria_RDT == 0 & co.inf$CCA_test == 0) {
  0
} else if (co.inf$Malaria_RDT > 0 & co.inf$CCA_test == 0) {
  1
} else if (co.inf$Malaria_RDT == 0 & co.inf$CCA_test > 0) {
  2
} else {
  3
}
...