vendredi 1 avril 2016

Use an 'apply' function to perfrom code with conditional statements in R

I have been working on a project for which I need to find peaks and valleys in a dataset (not just the highest numbers per column, but all of the peaks and valleys). I did manage to get it to work on 1 column, but I use a for-loop for that and I need to do this for about 50 columns, so I think I should use an 'apply' function. I just don't know how to do so. Can I put 'if' statements and such in an 'apply' function?

Here is what I used for checking one column: ('First' is the name of the dataset and 'Seq1' is the first column)

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)) }
    }
}

Aucun commentaire:

Enregistrer un commentaire