Без воспроизводимого примера я могу объяснить вам шаги, которые могут работать. Поскольку вы перегружены тем, с чего начать, мы надеемся, что это даст вам представление о том, как думать о решении подобных проблем.
1) Во-первых, нам нужно знать, какие лекарства относятся к классу А и классу В. Предполагая, что у вас есть эта информация, вы можете разделить два класса на их собственные фреймы данных (сохраните оригинал)
2) Далее нам нужно знать, содержал ли субъект какое-либо лекарство. Мы можем сделать это, создав новый столбец в каждом фрейме данных, который ИСТИНА или ЛОЖЬ. Условие, которое мы проверим, состоит в том, что сумма строки больше 0. Если значение true, то хотя бы у одного лекарства должно быть значение 1. Например:
df.class.A$has.drug <- ifelse(rowSums(df.class.A > 0, TRUE, FALSE)
3) Нам нужно Теперь создайте столбец в исходном фрейме данных, проверив три условия.
df$drugs <- ifelse(df.class.A$has.drug == TRUE,
ifelse(df.class.B$has.drug == TRUE, 'Class A and B', 'Class A'),
ifelse(df.class.B$has.drug == TRUE, 'Class B', 'NONE'))
Первый ifelse говорит: «Если у нас есть класс A, проверьте, есть ли у нас класс B, в противном случае, проверьте, есть ли у нас класс B» .
Второй ifelse говорит: «У нас есть класс A, поэтому, если у нас есть класс B, тогда укажите« класс A и B », если у нас нет класса B, тогда просто укажите« класс A ».
Последний говорит: «У нас нет класса A, поэтому, если у нас есть класс B, тогда просто укажите« Class B », если у нас нет класса B, то у нас ничего нет, поэтому укажите« none »(вы также можно поставить NA или что-нибудь еще).