Hi,
May be this helps:
val <- with(mydataset, diff(Lat))

indx <- cumsum(c(TRUE,val!=0 & !is.na(val)))

mydataset$Tr[indx==1]
#[1] 3 5 2 5
 sum(mydataset$Tr[indx==1])
#[1] 15
 mydataset$Tr[indx<=2]
#[1] 3 5 2 5 6
 sum(mydataset[indx==6,-2])
#[1] 12.5
#or
sum(mydataset[indx==rev(unique(indx))[2],-2])
[1] 12.5

A.K.


Dear R-Helpers, 

I am analyzing a data frame that has the same structure as the example below 
("mydataset"): 

Ti      Tr      Lat 
1       3       0 
2       5       0 
3       2       0 
4       5       0 
5       6       0.1 
6       7       0.2 
7       1       0.5 
8       4       0 
9       2.5     0 
10      3.5     0 
11      2.7     0 
12      3.3     0.5 
13      5       0 
14      4       0 
NA      NA      NA 
14      54      5.1 
NA      NA      NA 
NA      NA      NA 


I am trying to perform the following tasks: 

1. Extraction of all the values of "Tr" before the values of "Lat" differ for 
the first time from "0". 

mydataset$Tr[mydataset$Lat==0] does obviously not help, because it extracts 
every value of "Tr" for "Lat" equal to zero. 

In this case ("mydataset") the values to be extracted are: 3.0, 5.0, 2.0, 5.0, 
which I would sum to obtain 15.0. 

2. Same procedure as above, but including the first non-zero value of "Lat". 

"mydataset" values are: 3.0, 5.0, 2.0, 5.0, 6.0 which I would sum (21.0). 

3. Extraction of the last value of "Lat" that is different from 
"0" and that appears before the first "NA" (in this case "0.5"); sum it 
with the corresponding value of "Ti" ("12") to obtain 12.5. 

I have spent some time looking around on the web, but I was not able to find 
the answers I need. 

Any help? Thank you a lot! 


______________________________________________
R-help@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.

Reply via email to