Subset un marco de datos por múltiples niveles de factores [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Seleccione filas de un marco de datos en función de los valores en un vector 3 respuestas

¿Cómo puedo evitar usar un bucle para subconjugar un marco de datos basado en múltiples niveles de factores?

En el siguiente ejemplo, mi salida deseada es un marco de datos. El marco de datos debe contener las filas del marco de datos original donde el valor en "Código" es igual a uno de los valores en "seleccionado".

Ejemplo de trabajo:

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

Este es un ejemplo de juguete de un conjunto de datos mucho más grande, por lo que "seleccionado" puede contener una gran cantidad de elementos y los datos una gran cantidad de filas. Por lo tanto, me gustaría evitar el bucle.

Respuestas a la pregunta(3)

Su respuesta a la pregunta