Frage

Ich möchte einer neuen Spalte eines Datenrahmens eine Zahlenfolge zuweisen.Diese Sequenz wird jedoch basierend auf einem Wert in einer anderen Spalte mehrmals wiederholt.(d. h. es beginnt bei 1, bis dieser spezifische Wert in einen anderen Wert geändert wird).

Mein Problem besteht darin, den Endpunkt für jede Sequenz in r zu definieren.

Ein Teil meines Datenrahmens mit der Spalte „V2“, die ich hinzufügen möchte:

  V1      V2(new added column with sequential numbers)           
  12      1
  12      2
  12      3
  12      4
  12      5
  13      1
  13      2
  13      3
  13      4
  13      5
  13      6
  14      1
  14      2
  14      3
  14      4

Ich habe versucht, den folgenden Code zu verwenden, der nicht funktioniert hat!

count <- table(df$V1)
c <- as.integer(names(count)[df$V1==12])
    repeat{
      df$V2<- seq(1,c, by=1)
      if(df$V1!=12){
        break
      }
    }
War es hilfreich?

Lösung

Es hört sich so an, als wären Sie auf der Suche rle Da Sie sich jederzeit für die Variable „V1“ interessieren Änderungen.

Versuche Folgendes:

> sequence(rle(df$V1)$lengths)
 [1] 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4

Andere Tipps

rle ist eine sehr gute Lösung, aber Sie könnten auch AVE verwendet haben:

generasacodicetagpre.

hth

Well Ananda schlägt meine Anstrengungen:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top