-----Original Message-----
From: sguallar at yahoo.com
Sent: Sun, 15 Jul 2012 09:32:33 -0700 (PDT)
To: r-help at r-project.org
Subject: [R] Imposing more than one condition to if
Hi,
I have a dataset which contains several time records for a number of
days, plus a variable (light) that allows to determine night time (lihgt=
0) and daytime (light> 0). I need to obtain get dusk time and dawn time
for each day and place them in two columns.
This is the starting point (d):
day time light
1 1 20
1 12 10
1 11 6
1 9 0
1 6 0
1 12 0
...
30 8 0
30 3 0
30 8 0
30 3 0
30 8 8
30 9 20
And this what I want to get:
day time light dusk dawn
1 1 20 11 10
1 12 10 11 10
1 11 6 11 10
1 9 0 11 10
1 6 0 11 10
1 12 0 11 10
...
30 8 0 9 5
30 3 0 9 5
30 8 0 9 5
30 3 0 9 5
30 8 8 9 5
30 9 20 9 5
This is the code for data frame d:
day= rep(1:30, each=10)
n= length(dia); x= c(1:24)
time= sample(x, 300, replace= T)
light= rep(c(20,10,6,0,0,0,0,0,8,20), 30)
d=data.frame(day,time,light)
I'd need to impose a double condition like the next but if does not take
more than one:
attach(d)
for (i in 1: n){
if (light[i-1]>2 & light[i]<2){
d$dusk<- time[i-1]
}
if (light[i-1]<2 & light[i]>2){
d$dawn<- time[i]
}
}
detach(d)
d
Thank you for your help
[[alternative HTML version deleted]]