【发布时间】:2019-06-17 17:46:41
【问题描述】:
我想知道如何根据数据框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)
所需的输出:我想从数据框 A 中获取 CASE_ID 列表,这些 CASE_ID 包含来自数据框 B 的出生缺陷的组合。我还想指定存在哪种组合。 理想情况下,输出如下所示:
# Desired Output
output <- data.frame("CASE_ID" = c(1002,1003),
"combo_no" = c(3,1))
感谢您的帮助。
【问题讨论】:
-
您的意思是第一个数据库的每一行都包含有关第二个数据库的哪个数字组合构成组合的信息?例如,“combo_no: 1”是由第二个表中的 1,3,4,5,6 的 child 组成的?
-
是的,combo_no:1 由缺陷 1、3、4、5 和 6 组成。子 1 (case_ID: 10001) 具有此组合。在完整的数据集中,多个案例 id 可以有这个组合。
-
已回答,看看
标签: r