On Tue, 9 Nov 2004, F Z wrote:

Hi,

I have a data.frame with several variables and 50,000 observations.
i.e.
data[1:2,1:7]
Iteration Day Production.Type tsUSusc tsASusc tsULat tsALat
       1   0         Generic   17965 8833053      0      0
       1   1         Generic   17965 8833053      0      0
       .
       .
       .
       1 199         Generic   17237 8141028     26  23131
       2 127         Generic   15828 7307583     92  63463

I would like to extract only the observations (rows) for the last "day" for each "iteration" and store them in a data frame.

I tried lapply nested in a for loop without success. Any help will be greatly appreciated!

If you reverse the ordering you are then looking for the first Day in each Iteration, which can be done efficiently with duplicated().


data <- data[order(data$Iteration, data$Day, decreasing=TRUE),]

subset <- data[!duplicated(data$Iteration),]

If you are sure that the data are in order to begin with you could just reverse the entire data set ( data <- data[nrow(data):1,] ), but I'm always reluctant to assume this.

        -thomas

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to