Einen Datenrahmen nach mehreren Faktorstufen unterteilen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Wählen Sie Zeilen aus einem Datenrahmen basierend auf Werten in einem Vektor aus 3 answers

Wie kann ich vermeiden, eine Schleife zu verwenden, um einen Datenrahmen basierend auf mehreren Faktorebenen zu unterteilen?

Im folgenden Beispiel ist meine gewünschte Ausgabe ein Datenrahmen. Der Datenrahmen sollte die Zeilen des ursprünglichen Datenrahmens enthalten, in denen der Wert in "Code" einem der Werte in "selected" entspricht.

Arbeitsbeispiel:

#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
}

Dies ist ein Spielzeugbeispiel für einen viel größeren Datensatz. "Ausgewählt" kann also eine große Anzahl von Elementen und die Daten eine große Anzahl von Zeilen enthalten. Daher möchte ich die Schleife vermeiden.