2012-05-17 17 views
6

Questa deve essere una domanda semplice, ma come un nuovo arrivato R non sono stato in grado di capirlo.Come confrontare i vettori di caratteri per le corrispondenze parziali in R

Ho due vettori di caratteri, Lista1 e Lista2, e vorrei sapere quanti dei campioni in Lista1 si trovano anche in Lista2. Ma List2 ha spesso più nomi messi insieme che sembrano incasinare le cose. Qui ci sono le liste ipotetiche:

List1 <- c("SampleX", "SampleY", "SampleZ", "SampleQ") 

List2 <- c("SampleX", "SampleY", "Alias1,Alias2,SampleZ") 

posso ottenere un output che identifica SAMPLEX e Eddie, ma non SampleZ.

Qualche suggerimento ??

Grazie !!

+1

Non è abbastanza chiaro cosa si desidera che la risposta sia. Vuoi * rilevare * SampleZ? vale a dire, il risultato di 'f (List1, List2)' be 'c (" SampleX "," SampleY "," SampleZ ")'? –

risposta

8

ne dite:

List1[sapply(List1,function(x) any(grepl(x,List2)))] 
[1] "SampleX" "SampleY" "SampleZ" 

?

Problemi correlati