Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Question about Rules 5 and 6

Aperta
#3 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
r
Ambito
data

Direzione di ricerca

Inizia dal punto di ingresso Rspc::Rule5 ed esamina la finestra temporanea e la condizione mostrate nell’issue. Determina se il controllo del valore finale è intenzionale, quindi documenta il ragionamento o chiarisci l’implementazione in modo da risolvere la questione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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)
}
Lingua principale
R
Stelle
2
Fork
2
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Merck/SPC_Package

Tutte le issue di Merck/SPC_Package

Issue simili

Altre issue su R

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.