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.

Algoritmo que devuelve falso si el resultado ya ha salido anteriormente en R.

Quiero hacer un algoritmo que devuelva false si el resultado ya se ha producido antes. Adjunto el código que estoy utilizando, pero parece no ser el correcto. Agradecería cualquier ayuda.

x1 <- c("LMP","Dp","LMP","LMP","Dp")
x2 <- c("Dp","Dp","LMP","LMP","Dp")

for(i in 1:length(x)){
    if(i==1){TRUE}else{
      if(length(unique(x[1:i]))==1){FALSE}else{TRUE}}}

<h1>El resultado que quiero es</h1>

<h1>para x1:</h1>

TRUE, TRUE, FALSE, FALSE, FALSE

<h1>para x2:</h1>

TRUE, FALSE, TRUE, FALSE, FALSE

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el siguiente código para obtener el resultado deseado:

    x1 <- c("LMP","Dp","LMP","LMP","Dp")
    x2 <- c("Dp","Dp","LMP","LMP","Dp")
    
    for(i in 1:length(x1)){
      if(i==1){
        print(TRUE)
      } else {
        if(x1[i] == x1[i-1]){
          print(FALSE)
        } else {
          print(TRUE)
        }
      }
    }
    
    for(i in 1:length(x2)){
      if(i==1){
        print(TRUE)
      } else {
        if(x2[i] == x2[i-1]){
          print(FALSE)
        } else {
          print(TRUE)
        }
      }
    }
    

    Esto le dará los siguientes resultados:

    Para x1:

    TRUE, TRUE, FALSE, FALSE, FALSE

    Para x2:

    TRUE, FALSE, TRUE, FALSE, FALSE

Comments are closed.