Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Question about Rules 5 and 6

Abierto
#3 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
r
Área
data

Línea de trabajo

Comienza con el punto de entrada Rspc::Rule5 e inspecciona la ventana temporal y la condición mostradas en el issue. Determina si la comprobación del valor final es intencionada y, a continuación, documenta el razonamiento o aclara la implementación para resolver la cuestión.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Thank you for coding Nelson's rules into R. I have been learning Nelson's rules, and for my own understanding, I have been studying your code. I wonder about a line within Rules 5 and 6.

I have a question about the line from Rule5().

ifelse(((sum(temp == 1) >= minNPoints) &  temp[length(temp)] == 1) |
 ((sum(temp == -1) >= minNPoints) & temp[length(temp)] == -1), 
1, 
0)

Looking at the first part of the condition statement, I don't understand the value of temp[length(temp)] == 1) as this seems repetitive from sum(temp == 1) >= minNPoints. It seems that equality will always be TRUE if the inequality is TRUE, and if the inequality is FALSE, the equality will always be FALSE. Is there a case that the inequality would be FALSE but the equality would be TRUE?

Thanks.

For your (and other viewers') reference, here is the complete function for Rule5.

Rspc::Rule5
function (x, zoneB, minNPoints = 2, nPoints = 3, ...) 
{
    xOriginal = x
    x = na.omit(x)
    lenorig = length(xOriginal)
    len = length(x)
    if (len < nPoints) {
        return(rep(0, times = lenorig))
    }
    upper <- zoneB["2"]
    lower <- zoneB["-2"]
    xZoned <- ifelse(x > upper, 1, ifelse(x < lower, -1, 0))
    violation <- rep(0, times = len)
    if (all(xZoned[1:minNPoints] == 1) | all(xZoned[1:minNPoints] == 
        -1)) {
        violation[minNPoints] = 1
    }
    for (i in nPoints:len) {
        temp <- xZoned[(i - nPoints + 1):i]
        violation[i] = ifelse(((sum(temp == 1) >= minNPoints) & 
            temp[length(temp)] == 1) | ((sum(temp == -1) >= minNPoints) & 
            temp[length(temp)] == -1), 1, 0)
    }
    violation <- replace(xOriginal, !is.na(xOriginal), violation)
    violation[is.na(violation)] <- 0
    return(violation)
}
Lenguaje dominante
R
Estrellas
2
Forks
2
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Merck/SPC_Package

Todos los issues de Merck/SPC_Package

Issues similares

Más issues de R

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.