Fehlermeldung

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
bruecksy
Beiträge: 2
Registriert: Fr Jun 05, 2020 12:11 pm

Fehlermeldung

Beitrag von bruecksy »

Ich habe folgende Funktion erstellt:

Code: Alles auswählen

read_stations <- function(Daten) {
  +stationen <-
    read.table(
      Daten,
      header = TRUE,
      sep = ';',
      na.strings = NA,
      stringsAsFactors = FALSE
    )
  + stationen$MDA803 <-
    ifelse(stationen$Flag == '1', stationen$MDA803, NA)
  + stationen <-
    subset(stationen,
           stationen$Date >= '2000-01-01' & stationen$Date <= '2010-12-31')
  + if ((nrow(statioen) == 0) == TRUE) {
    +next+
  }
  + if ((stationen$Date[1] == '2000-01-01') == FALSE |
        (stationen$Date[length(stationen$Date)] == '2010-12-31') == FALSE) {
    +next+
  }
  + NA_perc = (nrow(subset(
    stationen, is.na(stationen$MDA803) == TRUE
  ))) / nrow(stationen)
  + if ((NA_perc <= 0.25) == TRUE) {
    +write.table(
      stationen,
      paste('Daten_final/', basename(Daten), sep = ''),
      sep = ';',
      row.names = FALSE
    )
    +
  }
  +
}
Diese möchte ich auf eine Liste anwenden

Code: Alles auswählen

daten_original <- list.files('Daten',all.files = FALSE,full.names = TRUE,pattern = 'IT')

lapply(daten_original,read_stations)
Dann wird mir eine Fehlermeldung angezeigt, die ich nicht verstehe.
Kennt jemand mögliche Lösungsansätze?
Screenshot (33).png
Zuletzt geändert von jogo am Fr Jun 05, 2020 12:30 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Fehlermeldung

Beitrag von jogo »

Hallo bruecksy,

willkommen im Forum!
bruecksy hat geschrieben: Fr Jun 05, 2020 12:23 pm Ich habe folgende Funktion erstellt:
Was sind das für Pluszeichen in dem Code? Die gehören jedenfalls nicht zum R-Code.

Diese möchte ich auf eine Liste anwenden

Code: Alles auswählen

daten_original <- list.files('Daten',all.files = FALSE,full.names = TRUE,pattern = 'IT')

lapply(daten_original,read_stations)
Dann wird mir eine Fehlermeldung angezeigt, die ich nicht verstehe.
Hier habe ich Dir ein kleines Bespiel konstruiert, welches die gleiche Fehlermeldung erzeugt:

Code: Alles auswählen

x <- 1:5
x[3] <- c()
Kennt jemand mögliche Lösungsansätze?
ja, es nennt sich Debuggen.
Du musst die Stelle in der Funktion finden, die den Fehler verursacht, und herausfinden warum der Fehler auftritt.
Dabei kann die Funktion debug() sehr nützlich sein, z.B. so:

Code: Alles auswählen

debug(read_stations)
lapply(daten_original[1],read_stations)
(vorausgesetzt, der Fehler tritt schon bei der ersten Datei auf)

Gruß, Jörg
Antworten