[R] Error in combined for() and if() code

Uwe Ligges ligges at statistik.tu-dortmund.de
Tue Dec 28 19:13:42 CET 2010



On 28.12.2010 19:08, Nathan Miller wrote:
> Hello,
>
> I am trying to filter a data set like below so that the peaks in the Phase
> value are more obvious and can be identified by a peak finding function
> following the useful advise of Carl Witthoft. I have written the following
>
> for(i in length(data$Phase)){

Nonsense: In this case the loop will only run once for i=length(data$Phase)

you probably want

for(i in seq_along(data$Phase)){


> newphase=if(abs(data$Phase[i+1]-data$Phase[i])>6){

Nonsense:
1. if()... won't return any useful result.
2. i+1 is not within your data

Uwe Ligges


> data$Phase[i+1]
> }else{data$Phase[i]
> }
> }
>
> I get the following error which I have not seen before when I paste the code
> into R
>
> Error in if (abs(data$Phase[i + 1] - data$Phase[i])>  6) { :
>    missing value where TRUE/FALSE needed
>
> I don't have much experience with such loops as I have tried to avoid using
> them in the past. Can anyone identify the error(s) in the code I have
> written or a simpler means of writing such a filter?
>
> Thank you,
> Nate
>
>
> data=
>      Time Phase
> 1  0.000 15.18
> 2  0.017 13.42
> 3  0.034 11.40
> 4  0.051 18.31
> 5  0.068 25.23
> 6  0.085 33.92
> 7  0.102 42.86
> 8  0.119 42.87
> 9  0.136 42.88
> 10 0.153 42.88
> 11 0.170 42.87
> 12 0.186 42.88
> 13 0.203 42.88
> 14 0.220 42.78
> 15 0.237 33.50
> 16 0.254 24.81
> 17 0.271 17.20
> 18 0.288 10.39
> 19 0.305 13.97
> 20 0.322 16.48
> 21 0.339 14.75
> 22 0.356 20.80
> 23 0.373 25.79
> 24 0.390 31.25
> 25 0.407 39.89
> 26 0.423 40.04
> 27 0.440 40.05
> 28 0.457 40.05
> 29 0.474 40.05
> 30 0.491 40.05
> 31 0.508 40.06
> 32 0.525 40.07
> 33 0.542 32.23
> 34 0.559 23.90
> 35 0.576 17.86
> 36 0.592 11.63
> 37 0.609 12.78
> 38 0.626 13.12
> 39 0.643 10.93
> 40 0.660 10.63
> 41 0.677 10.82
> 42 0.694 11.84
> 43 0.711 20.44
> 44 0.728 27.33
> 45 0.745 34.22
> 46 0.762 41.55
> 47 0.779 41.55
> 48 0.796 41.55
> 49 0.813 41.53
> 50 0.830 41.53
> 51 0.847 41.52
> 52 0.864 41.52
> 53 0.880 41.53
> 54 0.897 41.53
> 55 0.914 33.07
> 56 0.931 25.12
> 57 0.948 19.25
> 58 0.965 11.30
> 59 0.982 12.48
> 60 0.999 13.85
> 61 1.016 13.62
> 62 1.033 12.62
> 63 1.050 19.39
> 64 1.067 25.48
> 65 1.084 31.06
> 66 1.101 39.49
> 67 1.118 39.48
> 68 1.135 39.46
> 69 1.152 39.45
> 70 1.169 39.43
> 71 1.185 39.42
> 72 1.202 39.42
> 73 1.219 39.41
> 74 1.236 39.41
> 75 1.253 37.39
> 76 1.270 29.03
> 77 1.287 20.61
> 78 1.304 14.07
> 79 1.321  9.12
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list