Ho una matrice denominata mymat
. Ho un vettore chiamato geno <- c("01","N1","11","1N","10")
. Ho un altro tavolo chiamato key.table
. Quello che voglio fare è corrispondere alla colonna key
in key.table
con la colonna key
in mymat
e Se i valori di colonna in una qualsiasi delle righe corrispondenti hanno uno qualsiasi degli elementi geno
, voglio estrarre il nome di quella colonna da mymat
lungo con l'elemento corrispondente geno
e incollarlo nella nuova colonna in matched.extract
in key.table
nelle righe corrispondenti per ogni key
e ottenere il risultato.Come abbinare 2 colonne dataframe ed estrarre valori di colonna e nomi di colonna?
mymat <- structure(c("chr5:12111", "chr5:12111", "chr5:12113", "chr5:12114",
"chr5:12118", "0N", "0N", "1N", "0N", "0N", "00", "00", "00",
"11", "10", "00", "00", "1N", "0N", "00"), .Dim = c(5L, 4L), .Dimnames = list(
c("34", "35", "36", "37", "38"), c("key", "AMLM12001KP",
"AMAS-11.3-Diagnostic", "AMLM12014N-R")))
key.table<- structure(c("chr5:12111", "chr5:12111", "chr5:12113", "chr5:12114",
"chr5:12118", "chr5:12122", "chr5:12123", "chr5:12123", "chr5:12125",
"chr5:12127", "chr5:12129", "9920068", "9920069", "9920070",
"9920071", "9920072", "9920073", "9920074", "9920075", "9920076",
"9920077", "9920078"), .Dim = c(11L, 2L), .Dimnames = list(c("34",
"35", "36", "37", "38", "39", "40", "41", "42", "43", "44"),
c("key", "variantId")))
risultato
key variantId matched.extract
34 "chr5:12111" "9920068" NA
35 "chr5:12111" "9920069" NA
36 "chr5:12113" "9920070" AMLM12001KP (1N),AMLM12014N-R (1N)
37 "chr5:12114" "9920071" AMAS-11.3-Diagnostic (11)
38 "chr5:12118" "9920072" AMAS-11.3-Diagnostic (10)
39 "chr5:12122" "9920073" NA
40 "chr5:12123" "9920074" NA
41 "chr5:12123" "9920075" NA
42 "chr5:12125" "9920076" NA
43 "chr5:12127" "9920077" NA
44 "chr5:12129" "9920078" NA
Quindi siamo interessati solo ai valori di "1N", "11" e "10"? Non sei chiaro al riguardo. –
@MikeWise Esatto, vogliamo solo estrarre solo se le celle hanno uno di questi valori. – MAPK