2016-03-25 23 views
0

birden fazla değere sahip bir veri çerçevesi arasında bir değer eşleştirR - Örneğin başka

d1 <- data.frame(c(a,b,c,d,e,f)) 
d2 <- data.frame(c(a,a,a,b,b,d,d,d,d,d,e,e,f)) 

... Ben iki veri çerçeveleri olduğunu varsayalım Ve 'a' d1 d2 içinde aramak istediğiniz ve Bir vektörde saklanabilen her eşleşen değerin indeksini ortaya çıkarır.

Match() işlevini kullanarak aradık ve oynadım, ancak bu yalnızca bir eşleşme değeri olduğunda işe yarıyor.

Teşekkür

+1

Örnek verilerinizden istenen çıktı ne olurdu? –

+2

'hangi (d2 ==" a ")'? – JasonAizkalns

+0

Bu harfler nesne olmadıkça, alıntılanmaları gerekir ve muhtemelen değişkenlere isimler vermelisiniz, böylece brüt kalmazlar. Ayrıca, [dataframes] etiketini değil [data.frame] etiketini arıyorsunuz. – alistaire

cevap

1

ilk data.frame yoluyla, diğerinden yapabildin döngü birden çok değeri olan bir veri çerçevesi bir değer eşleşmesi ve her değer için ikinci indisi almak için.

d1 <- data.frame(x = c("a","b","c","d","e","f"), stringsAsFactors = F) 
d2 <- data.frame(x = c("a","a","a","b","b","d","d","d","d","d","e","e","f"), stringsAsFactors = F) 

sapply(d1$x, function(value) which(d2 == value)) 
#> $a 
#> [1] 1 2 3 
#> 
#> $b 
#> [1] 4 5 
#> 
#> $c 
#> integer(0) 
#> 
#> $d 
#> [1] 6 7 8 9 10 
#> 
#> $e 
#> [1] 11 12 
#> 
#> $f 
#> [1] 13 
+0

(d2 == değeri)) tam olarak aradığım şey. Teşekkür ederim. – Gary866