Bestimmte Zeilen aus Datensatz löschen

Methoden der Zeitreihenanalyse

Moderator: schubbiaschwilli

Antworten
lotti1798
Beiträge: 7
Registriert: Di Feb 02, 2021 7:05 pm

Bestimmte Zeilen aus Datensatz löschen

Beitrag von lotti1798 »

Hej zusammen!
Ich habe einen Datensatz (angehängt), der besteht aus: Jahr, Monat, Tag, Niederschlagsdaten für verschiedene Stationen und in der letzten Spalte ist bei den Daten, die ich gerne behalten würde (jeweils von Anfang Mai bis Ende Oktober) eine 1 eingetragen, bei den Daten, deren Zeilen gelöscht werden sollen, ist eine 0 eingetragen.

Ich habe es damit versucht: (test_wrain ist die matrix aus der csv-Datei)

Code: Alles auswählen

for (i in 1:22281){
  if(test_wrain[i,10]==0){ # wenn in der letzten Spalte eine 0 steht,
    test_wrain[i,-(1:10)] # dann lösche die Zeile, in der die 0 ist.
  }
}
Das funktioniert so aber leider nicht...
Andere Möglichkeit wäre, für jedes Jahr die Monate 11-4 zu löschen, sodass für jedes Jahr nur noch die Monate 5-10 in der Matrix bleiben.

Ich würde mich sehr über Hilfe freuen! :)
Dateianhänge
test.zip
(172.61 KiB) 146-mal heruntergeladen
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Bestimmte Zeilen aus Datensatz löschen

Beitrag von Athomas »

Da gibt es wieder 1000 Möglichkeiten (999 schicken Andere :) ), hier eine data.table-Variante:

Code: Alles auswählen

library(data.table)

komplett <- fread("P:/R/R Forum/Löschen/test/Test.csv")
Teil     <- komplett[V10==1]
Es ginge auch ohne die "0-1-Vorbereitung"!
lotti1798
Beiträge: 7
Registriert: Di Feb 02, 2021 7:05 pm

Re: Bestimmte Zeilen aus Datensatz löschen

Beitrag von lotti1798 »

Vielen Dank!
Das war ja nun wirklich keine schwierige Sache...
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Bestimmte Zeilen aus Datensatz löschen

Beitrag von bigben »

Naja, immerhin musste erstmal ein zip entpackt werden.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten