Ich habe an einem Projekt gearbeitet, für die ich Spitzen und Täler in einem Datensatz (nicht nur die höchsten Zahlen pro Spalte, sondern alle Peaks und Täler). Ich schaffte es, es auf 1 Spalte zu arbeiten, aber ich verwende eine for-Schleife für das und ich muss dies für etwa 50 Spalten tun, also denke ich, ich sollte eine "Anwenden" -Funktion verwenden. Ich weiß einfach nicht, wie ich das machen soll. Kann ich "if" -Anweisungen und solche in einer "apply" -Funktion setzen?Verwenden Sie eine 'apply' Funktion, um Code mit bedingten Anweisungen in R
Hier ist, was ich für die Überprüfung einer Spalte verwendet: (‚First‘ ist der Name des Datensatzes und ‚Seq1‘ ist die erste Spalte)
Lowest = 0
Highest = 0
Summits = vector('numeric')
Valleys = vector('numeric')
for (i in 1:length(First$Seq1))
{
if (!is.na(First$Seq1[i+1]))
{
if (First$Seq1[i] < Lowest) {Lowest = First$Seq1[i]}
if (First$Seq1[i] > Highest) {Highest = First$Seq1[i]}
if (First$Seq1[i] > 0 && First$Seq1[i+1] < 0)
{ Summits <- append(Summits, Highest, after=length(Summits)) }
if (First$Seq1[i] < 0 && First$Seq1[i+1] > 0)
{ Valleys <- append(Valleys, Lowest, after=length(Summits)) }
}
}
Ich habe eine Frage zu x. Was genau passiert damit? Wird es jedes Mal um 1 erhöht? Denn wenn ich Seq1 durch x ersetze, bekomme ich den Fehler, dass das x nicht existiert. –
Ich habe es jetzt laufen! Vielen Dank! Das einzige, was ich jetzt herausfinden muss, ist, wie man die Ergebnisse am besten speichert. Ich musste 'function (x)' übrigens vor 'HelperFun' hinzufügen. Sollte jemand anderes es wissen wollen. –
Sie sollten vor 'HelperFun' keine Funktion (x) hinzufügen müssen. Sie haben wahrscheinlich nicht ganz verstanden, wie "apply" funktioniert, da Sie etwas getan haben, was nicht notwendig sein sollte. – Roland