Hi: Try this:
> d <- read.table(textConnection(" + procedure property sensor_data sensor_date + 1 S_10 nord 626821.0 2002-09-30T00:00:00+0200 + 2 S_10 nord 626821.0 2002-12-05T00:00:00+0100 + 3 S_10 nord 626821.1 2008-07-31T00:00:00+0200 + 4 S_1000 nord 626496.8 2002-09-30T00:00:00+0200 + 5 S_1000 nord 626496.8 2002-12-05T00:00:00+0100 + 6 S_1000 nord 626496.9 2009-04-23T00:00:00+0200 + 7 S_1000 nord 626497.0 2009-11-10T00:00:00+0100 + 8 S_1 nord 626485.3 2002-09-30T00:00:00+0200 + 9 S_1 nord 626485.3 2002-12-05T00:00:00+0100 + 10 S_1 nord 626485.3 2003-02-07T00:00:00+0100"), header = TRUE) # Create a new date variable - the HMS+ seem to be overkill here :) d$sensor_date <- as.character(d$sensor_date) d$stime <- as.Date(substring(d$sensor_date, 1, 10)) # Create a function to determine the minimum time and produce the differences # in sensor_data - works for a generic input data frame > f <- function(df) { + mint <- which.min(df$stime) + df$difference <- with(df, sensor_data - sensor_data[mint]) # df$stime <- NULL # optional: knocks out the created date variable + df + } # Use the ddply() function in package plyr to map f to each subset data frame # defined by procedure: > library(plyr) > ddply(d, .(procedure), f) procedure property sensor_data sensor_date stime difference 1 S_1 nord 626485.3 2002-09-30T00:00:00+0200 2002-09-30 0.0 2 S_1 nord 626485.3 2002-12-05T00:00:00+0100 2002-12-05 0.0 3 S_1 nord 626485.3 2003-02-07T00:00:00+0100 2003-02-07 0.0 4 S_10 nord 626821.0 2002-09-30T00:00:00+0200 2002-09-30 0.0 5 S_10 nord 626821.0 2002-12-05T00:00:00+0100 2002-12-05 0.0 6 S_10 nord 626821.1 2008-07-31T00:00:00+0200 2008-07-31 0.1 7 S_1000 nord 626496.8 2002-09-30T00:00:00+0200 2002-09-30 0.0 8 S_1000 nord 626496.8 2002-12-05T00:00:00+0100 2002-12-05 0.0 9 S_1000 nord 626496.9 2009-04-23T00:00:00+0200 2009-04-23 0.1 10 S_1000 nord 626497.0 2009-11-10T00:00:00+0100 2009-11-10 0.2 HTH, Dennis On Tue, Feb 1, 2011 at 1:52 AM, alcesgabbo <alcesga...@hotmail.com> wrote: > > Hello everybody. > > I have this object > > procedure property sensor_data sensor_date > 1 S_10 nord 626821.0 2002-09-30T00:00:00+0200 > 2 S_10 nord 626821.0 2002-12-05T00:00:00+0100 > 3 S_10 nord 626821.1 2008-07-31T00:00:00+0200 > 4 S_1000 nord 626496.8 2002-09-30T00:00:00+0200 > 5 S_1000 nord 626496.8 2002-12-05T00:00:00+0100 > 6 S_1000 nord 626496.9 2009-04-23T00:00:00+0200 > 7 S_1000 nord 626497.0 2009-11-10T00:00:00+0100 > 8 S_1 nord 626485.3 2002-09-30T00:00:00+0200 > 9 S_1 nord 626485.3 2002-12-05T00:00:00+0100 > 10 S_1 nord 626485.3 2003-02-07T00:00:00+0100 > > the third colomn (sensor_data) is a distance in meters. > each distance has a date (sensor_date) > for each row I would like to find the difference from the first distance > (with the min date) and the distance. > > I know it's difficult to understand.. I give you an example: > > for the first procedure S_10 I should find the first distance based on the > date: > > distance: 626821.0 with the date: 2002-09-30T00:00:00+0200 > > then I should do the difference between the current distance and the first > distance: > > 626821.0 - 626821.0 = 0.0 > 626821.0 - 626821.0 = 0.0 > 626821.1 - 626821.0 = 0.1 > > Then I should do this also for the other procedures. > > I would like a resut like this: > > procedure property sensor_data sensor_date difference > 1 S_10 nord 626821.0 2002-09-30T00:00:00+0200 0.0 > 2 S_10 nord 626821.0 2002-12-05T00:00:00+0100 0.0 > 3 S_10 nord 626821.1 2008-07-31T00:00:00+0200 0.1 > 4 S_1000 nord 626496.8 2002-09-30T00:00:00+0200 0.0 > 5 S_1000 nord 626496.8 2002-12-05T00:00:00+0100 0.0 > 6 S_1000 nord 626496.9 2009-04-23T00:00:00+0200 0.1 > 7 S_1000 nord 626497.0 2009-11-10T00:00:00+0100 0.2 > 8 S_1 nord 626485.3 2002-09-30T00:00:00+0200 0.0 > 9 S_1 nord 626485.3 2002-12-05T00:00:00+0100 0.0 > 10 S_1 nord 626485.3 2003-02-07T00:00:00+0100 0.0 > > How can I do this procedure????? > > > Thanks > > -- > View this message in context: > http://r.789695.n4.nabble.com/multi-Operations-on-a-matrix-tp3250807p3250807.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.