У меня есть два столбца в таблице, содержащие списки генов в качестве символов, например,
x <- data.frame("Patient" = 1:3, "Genes1" = c("EGFR; TP53; BRCA1","CDK1; CD274; PARP1","MAP2K1; MAP2K2; PIK3CA"), "Genes2" = c("EGFR; TP53; MAP2K1; VEGF", NA,"MAP2K1; MTOR"))
I wi sh, чтобы создать новый столбец с подсчетом количества общих генов между другими столбцами для соответствующая строка. Я пытаюсь сделать это в R, разбивая символы в список и подсчитывая общие элементы:
x <- x %>% mutate(Count = length(intersect(strsplit(Genes1, "; ")[[1]], strsplit(Genes2, "; ")[[1]])))
или
x$Count1 <- length(intersect(strsplit(x$Genes1, "; ")[[1]], strsplit(x$Genes2, "; ")[[1]]))
, но это возвращает "2" для каждой строки, а чем указанная строка c результат, который я хочу, это будет
x <- data.frame("Patient" = 1:3, "Genes1" = c("EGFR; TP53; BRCA1","CDK1; CD274; PARP1","MAP2K1; MAP2K2; PIK3CA"), "Genes2" = c("EGFR; TP53; MAP2K1; VEGF", NA,"MAP2K1; MTOR"), Count = c(2,0,1))
Любые указатели?