es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Función R como “which” para comparar múltiples entradas con múltiples valores.

Tengo un vector de múltiples valores que quiero comparar con múltiples valores sin usar un bucle. ¿Existe una función que pueda hacer esto?

x <- c(2,5,4)
y <- 2:10
which(x==y) #no funcionará 

La salida esperada es 1,4,3.

En mi caso de uso real, puedes asumir que solo hay una coincidencia correcta y que emparejará y cada vez. Necesito que esto sea lo más rápido posible, por eso estoy tratando de evitar un bucle. Como nota al margen, esta parte ya está dentro de un bucle foreach.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, existe una función llamada %in% que se puede utilizar para emparejar múltiples valores en un vector sin necesidad de un bucle. Aquí hay un ejemplo utilizando el código proporcionado:

    x <- c(2,5,4)
    y <- 2:10
    which(y %in% x)
    

    La salida será 1,4,6 ya que esas son las posiciones en y donde se pueden encontrar los valores de x. El uso de %in% en lugar de == permite encontrar múltiples coincidencias en y para cada valor en x.

Comments are closed.