Я хотел бы знать, как извлечь значения в одном столбце фрейма данных (фрейм данных A) на основе определенных имен столбцов в фрейме данных A, содержащем значения нескольких столбцов из другого фрейма данных (кадр данных B) .
Более конкретно. У меня есть два кадра данных:
Фрейм данных A содержит комбинации врожденных дефектов. Каждая строка представляет собой отдельную комбинацию, а каждый столбец - номер дефекта, включенного в эту комбинацию.
# Combinations data frame
combos <- data.frame("combo_no"=c(1:4),
"Defect_A" = c(1,1,1,1),
"Defect_B" = c(3,2,3,4),
"Defect_C" = c(4,4,NA,7),
"Defect_D" = c(5,5,NA,8),
"Defect_E" = c(6,6,NA,NA))
Фрейм данных B содержит отдельные случаи. Первый столбец имеет уникальный идентификатор (CASE_ID). Остальные столбцы - это число конкретных врожденных дефектов, где «1» означает «врожденный дефект присутствует» и «0» означает «не присутствует».
# Cases data set
set.seed(99)
CASE_ID = c(1001:1005)
case1 = sample(0:1, 10, replace=TRUE)
case2 = sample(0:1, 10, replace=TRUE)
case3 = sample(0:1, 10, replace=TRUE)
case4 = sample(0:1, 10, replace=TRUE)
case5 = sample(0:1, 10, replace=TRUE)
def<-data.frame(rbind(case1, case2, case3, case4, case5))
colnames(def)<- c(1:10)
cases<-cbind(CASE_ID,def)
Желаемый результат: Я хотел бы получить список CASE_ID из фрейма данных A, которые имеют комбинацию врожденных дефектов из фрейма данных B. Я также хотел бы указать, какая комбинация присутствует.
В идеале вывод должен выглядеть следующим образом:
# Desired Output
output <- data.frame("CASE_ID" = c(1002,1003),
"combo_no" = c(3,1))
Спасибо за вашу помощь.