Ersetzen Sie die Zeilen im Datenframe durch 0, wobei die Werte der vorhergehenden Zeile von 0 verschieden sind

8

Hier ein Beispiel meines Datenrahmens:

%Vor%

Ich muss die 0s in col b mit jeder vorhergehenden Zahl ersetzen, die von 0 verschieden ist.

Hier meine gewünschte Ausgabe:

%Vor%

Bisher habe ich es versucht:

%Vor%

Aber es funktioniert nicht. Danke

    
aaaaa 05.05.2017, 09:27
quelle

3 Antworten

6

na.locf von zoo kann dabei helfen:

%Vor%

Aus:

%Vor%     
LyzandeR 05.05.2017, 09:42
quelle
5
___ antwort43802206 ___

Die Ausführung dieser Aufgabe in einer einfachen Bedingung scheint ziemlich schwierig zu sein, aber Sie können auch eine kleine for-Schleife verwenden, anstatt ein Paket zu laden.

%Vor%

Ausgabe:

%Vor%

Ich gehe davon aus, dass dies für große data.frames

langsam sein könnte     
___ antwort43804289 ___

Hier ist eine Basis-R-Methode, die %code% verwendet.

%Vor%

Dies gibt

zurück %Vor%

Beachten Sie, dass die Ersetzungszeile einen Fehler auslöst, wenn das erste Element des Vektors 0 ist. Sie können das beheben, indem Sie einen Vektor erstellen, der sie ausschließt.

Zum Beispiel

%Vor%     
___ tag123r ___ R ist eine freie, quelloffene Programmiersprache und Softwareumgebung für statistische Berechnungen, Bioinformatik, Visualisierung und allgemeine Datenverarbeitung. Stellen Sie minimale, reproduzierbare, repräsentative Beispiele für Ihre Fragen bereit. Verwenden Sie dput () für Daten und geben Sie alle Nicht-Basis-Pakete mit Bibliotheksaufrufen an. Bilder für Daten oder Code nicht einbetten, eingerückte Codeblöcke verwenden. Verwenden Sie für statistische Fragen http://stats.stackexchange.com. ___ tag123dataframe ___ Ein Datenrahmen ist eine tabellarische Datenstruktur. Normalerweise enthält es Daten, bei denen Zeilen Beobachtungen und Spalten verschiedene Variablen sind. Während "data frame" oder "dataframe" für dieses Konzept in mehreren Sprachen verwendet wird (R, Apache Spark, deedle, Maple, die Pandas-Bibliothek in Python und die DataFrames-Bibliothek in Julia), ist "Tabelle" der in MATLAB und SQL. ___ tag123replace ___ Ersetzen ist die Aktion, die eine Zeichenfolge nach einer Unterzeichenfolge durchsucht und sie durch eine andere Zeichenfolge ersetzt. ___ tag123rows ___ Eine Zeile ist ein einzelnes Datenelement in einer Datenbank, Tabelle, Tabelle, Tabelle oder Liste. Wenn Sie dieses Tag verwenden, fügen Sie bitte auch zusätzliche Tags hinzu, um Ihre spezifische Umgebung / Sprache / Anwendungsfall zu verdeutlichen. ___ tag123condition ___ In der Informatik sind bedingte Anweisungen, bedingte Ausdrücke und bedingte Konstrukte Merkmale einer Programmiersprache, die unterschiedliche Berechnungen oder Aktionen ausführen, je nachdem, ob eine vom Programmierer angegebene boolesche Bedingung zu wahr oder falsch auswertet. ___ answer43801640 ___

%code% von %code% kann dabei helfen:

%Vor%

Aus:

%Vor%     
___ qstnhdr ___ Ersetzen Sie die Zeilen im Datenframe durch 0, wobei die Werte der vorhergehenden Zeile von 0 verschieden sind ___ qstntxt ___

Hier ein Beispiel meines Datenrahmens:

%Vor%

Ich muss die 0s in col %code% mit jeder vorhergehenden Zahl ersetzen, die von 0 verschieden ist.

Hier meine gewünschte Ausgabe:

%Vor%

Bisher habe ich es versucht:

%Vor%

Aber es funktioniert nicht. Danke

    
___
sargas 05.05.2017 10:08
quelle
2
___ antwort43802206 ___

Die Ausführung dieser Aufgabe in einer einfachen Bedingung scheint ziemlich schwierig zu sein, aber Sie können auch eine kleine for-Schleife verwenden, anstatt ein Paket zu laden.

%Vor%

Ausgabe:

%Vor%

Ich gehe davon aus, dass dies für große data.frames

langsam sein könnte     
___ antwort43804289 ___

Hier ist eine Basis-R-Methode, die rle verwendet.

%Vor%

Dies gibt

zurück %Vor%

Beachten Sie, dass die Ersetzungszeile einen Fehler auslöst, wenn das erste Element des Vektors 0 ist. Sie können das beheben, indem Sie einen Vektor erstellen, der sie ausschließt.

Zum Beispiel

%Vor%     
___ tag123r ___ R ist eine freie, quelloffene Programmiersprache und Softwareumgebung für statistische Berechnungen, Bioinformatik, Visualisierung und allgemeine Datenverarbeitung. Stellen Sie minimale, reproduzierbare, repräsentative Beispiele für Ihre Fragen bereit. Verwenden Sie dput () für Daten und geben Sie alle Nicht-Basis-Pakete mit Bibliotheksaufrufen an. Bilder für Daten oder Code nicht einbetten, eingerückte Codeblöcke verwenden. Verwenden Sie für statistische Fragen http://stats.stackexchange.com. ___ tag123dataframe ___ Ein Datenrahmen ist eine tabellarische Datenstruktur. Normalerweise enthält es Daten, bei denen Zeilen Beobachtungen und Spalten verschiedene Variablen sind. Während "data frame" oder "dataframe" für dieses Konzept in mehreren Sprachen verwendet wird (R, Apache Spark, deedle, Maple, die Pandas-Bibliothek in Python und die DataFrames-Bibliothek in Julia), ist "Tabelle" der in MATLAB und SQL. ___ tag123replace ___ Ersetzen ist die Aktion, die eine Zeichenfolge nach einer Unterzeichenfolge durchsucht und sie durch eine andere Zeichenfolge ersetzt. ___ tag123rows ___ Eine Zeile ist ein einzelnes Datenelement in einer Datenbank, Tabelle, Tabelle, Tabelle oder Liste. Wenn Sie dieses Tag verwenden, fügen Sie bitte auch zusätzliche Tags hinzu, um Ihre spezifische Umgebung / Sprache / Anwendungsfall zu verdeutlichen. ___ tag123condition ___ In der Informatik sind bedingte Anweisungen, bedingte Ausdrücke und bedingte Konstrukte Merkmale einer Programmiersprache, die unterschiedliche Berechnungen oder Aktionen ausführen, je nachdem, ob eine vom Programmierer angegebene boolesche Bedingung zu wahr oder falsch auswertet. ___ answer43801640 ___

%code% von %code% kann dabei helfen:

%Vor%

Aus:

%Vor%     
___ qstnhdr ___ Ersetzen Sie die Zeilen im Datenframe durch 0, wobei die Werte der vorhergehenden Zeile von 0 verschieden sind ___ qstntxt ___

Hier ein Beispiel meines Datenrahmens:

%Vor%

Ich muss die 0s in col %code% mit jeder vorhergehenden Zahl ersetzen, die von 0 verschieden ist.

Hier meine gewünschte Ausgabe:

%Vor%

Bisher habe ich es versucht:

%Vor%

Aber es funktioniert nicht. Danke

    
___
lmo 05.05.2017 11:53
quelle

Tags und Links