Podstaw ramkę danych według wielu poziomów czynników [duplikat]

To pytanie ma już odpowiedź tutaj:

Wybierz wiersze z ramki danych na podstawie wartości w wektorze 3 odpowiedzi

Jak mogę uniknąć używania pętli do podzestawu ramki danych na podstawie wielu poziomów czynników?

W poniższym przykładzie moim pożądanym wyjściem jest ramka danych. Ramka danych powinna zawierać wiersze oryginalnej ramki danych, w których wartość w polu „Kod” jest równa jednej z wartości w polu „wybrane”.

Przykład roboczy:

#sample data
Code<-c("A","B","C","D","C","D","A","A")
Value<-c(1, 2, 3, 4, 1, 2, 3, 4)
data<-data.frame(cbind(Code, Value))

selected<-c("A","B") #want rows that contain A and B

#Begin subsetting
result<-data[which(data$Code==selected[1]),]
s1<-2
while(s1<length(selected)+1)
{
  result<-rbind(result,data[which(data$Code==selected[s1]),])
  s1<-s1+1
}

To zabawkowy przykład dużo większego zestawu danych, więc „wybrane” może zawierać dużą liczbę elementów, a dane dużą liczbę wierszy. Dlatego chciałbym uniknąć pętli.

questionAnswers(3)

yourAnswerToTheQuestion