Wie eine Schleife durch eine matrix Zeilen von i:n und Spalten

Ich bin noch ein Anfänger in r. Ich versuche eine Schleife durch eine matrix und berechnen von Summen looping aus jeder einzelnen Zeile(1:5), bis der Schwellenwert (z.B. 14) in dieser Zeile erreicht ist. Dann gehen Sie durch alle Spalten (2:6). Was ich will ist, dass meine matrix(b) ist gefüllt mit den Nummern(91:95), wo die Zeilen haben den Schwellenwert erreicht. Ich habe versucht, diese. Hat jemand eine Idee, was ich falsch mache.

a <- matrix(c(91:95,1:25), ncol=6)    
b <- matrix(NA,ncol=6,nrow=5)


for(i in 1:nrow(a)) {
    for(j in 2:ncol(a)) {
        for(n in 1:5) {
            if(sum(a[seq(i:n),j])>14) {
                b[i,j] <- a[n,1]
                break
            }
        }
    }
}

Dies ist mein Ergebnis.

      [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   NA   95   93   92   91   91
[2,]   NA   NA   94   91   91   91
[3,]   NA   NA   91   91   91   91
[4,]   NA   NA   91   91   91   91
[5,]   NA   91   91   91   91   91

Mein gewünschtes Ergebnis sollte wie folgt Aussehen. Die Ergebnisse sollten auf den Startpunkt(i) und zeigen Sie die Zeile (n) wo der Schwelle(14) wurde überschritten.

      [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   NA   95   93   92   91   91
[2,]   NA   NA   93   93   91   91
[3,]   NA   NA   94   94   91   91
[4,]   NA   NA   95   95   91   91
[5,]   NA   NA   NA   95   91   91

Kann mir jemand helfen mit diesem.

Vielen Dank im Voraus. Ist auch einfacher, die Ideen als geschachtelte Schleifen sind geschätzt.

  • Nicht sicher, ob ich Verstand Ihr problem, aber in der 4. Zeile in der Schleife sollte nur i:n oder seq(i,n) und nicht seq(i:n)
InformationsquelleAutor user3472591 | 2015-01-06
Schreibe einen Kommentar