2012-11-21 14 views
8

I mają następujące dwie ramki danych:R - dodania wartości do ramki danych spełniających określone kryteria

d <- data.frame(c1 = c("A","A","B","C","A","C","D","D")) 

map <- data.frame(c1 = c("A","B","C","D"), c2 = c(12,14,16,25)) 

Jak można dodać kolejne kolumny o nazwie „dopasowanie” do ramki danych D, która zawiera odpowiednie wartości znajdujące się w dane mapa ramek? Ramka danych d powinna wyglądać następująco:

A 12 
A 12 
B 14 
C 16 
A 12 
C 16 
D 25 
D 25 

Z góry dziękujemy!

Odpowiedz

10

używając funkcji nazywa match:

d$match <- map$c2[match(d$c1,map$c1)] 

I ze względu na sposób te poziomy są określone, można również zrobić:

d$match <- map$c2[d$c1] 

ale to tylko prace, jeśli każdy wiersz match dokładnie pasuje poziomy współczynnika c1 w kolejności.

Powiązane problemy