Ich bin ein Newby in R mit etwas Hintergrund in mehr prozeduralen Sprachen. Derzeit versuche ich, unnötige "for" -Schleifen zu umgehen und sie mit etwas aus der anwendenden Familie zu versehen. Also hier ist mein Problem:Schleifen durch Zeilen mit Lapply mit einer bedingten
- Sagen wir, ich habe einen Vektor:
data <- c(0.0008, 0.0007, 0.0040, 0.0081, 0.0217, 0.0292, 0.0332, 0.0451, 0.0533, 0.0621)
- Und das möchte ich es in einen Vektor zur Transformation mit nur steigenden Datenpunkten. Der Einfachheit halber möchte ich sagen, dass ich möchte, dass alle Elemente wie das zweite Element (das kleiner ist als das vorherige Element) zum Durchschnitt des vorherigen und des nächsten Elements werden.
- Dazu habe ich versucht, so etwas zu verwenden:
data <- lapply(data, function(i) ifelse(data[i+1]<data[i], data[i+1]<-(data[i]+data[i+2])/2, data[i+1]))
- Das Ergebnis ist eine Liste (kein Vektor) mit allen Elementen wie folgt aus:
logical(0)
ich kann nicht herausfinden, wo mein Fehler ist - was ich hier fehlt?