Hello Bill (and Petr and all),

Thank you very much! That was exactly what I was looking for! I could have never accomplished that on my own.

Have a great time,
Tagmarie

Am 09.12.2015 um 18:07 schrieb William Dunlap:
You can use the approx() function (in that stats package) to put
5 equally spaced times between your high and low water times.
E.g., in the following 'tmp' will be your interpolated times, in seconds
since 1970, which I clumsily convert to POSIX times (I can never
remember how to deal with time zones so I make everything use UTC).

tmp <- with(myframe2, approx(x=seq(1, by=6, length.out=length(Timestamp)), 
y=as.numeric(Timestamp), xout=seq(1,by=1,length.out=6*(length(Timestamp)-1)+1))$y)
as.POSIXct(i, origin="1970-01-01 00:00", tz="UTC")
  [1] "2013-08-02 22:10:00 UTC" "2013-08-02 23:09:00 UTC"
  [3] "2013-08-03 00:08:00 UTC" "2013-08-03 01:07:00 UTC"
  [5] "2013-08-03 02:06:00 UTC" "2013-08-03 03:05:00 UTC"
  [7] "2013-08-03 04:04:00 UTC" "2013-08-03 05:06:20 UTC"
  [9] "2013-08-03 06:08:40 UTC" "2013-08-03 07:11:00 UTC"
[11] "2013-08-03 08:13:20 UTC" "2013-08-03 09:15:40 UTC"
[13] "2013-08-03 10:18:00 UTC"
diff(.Last.value)
Time differences in mins
  [1] 59.00000 59.00000 59.00000 59.00000 59.00000 59.00000 62.33333 62.33333
  [9] 62.33333 62.33333 62.33333 62.33333

Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Thu, Dec 3, 2015 at 2:51 AM, Dagmar <ramga...@gmx.net> wrote:
Hello,
I hope someone can help me with my problem:
I have a dataframe like this:

datframe <- data.frame(dates=c("02.08.2013","03.08.2013","03.08.2013"),
times =c("22:10","4:04", "10:18"), tide =c("NW","HW", "NW"))
datframe
Timestamp <- paste(datframe$dates, datframe$times)
myframe2 <- cbind( Timestamp,datframe)
head(myframe2)
myframe2$dates <- NULL
myframe2$times <- NULL
myframe2$Timestamp <- as.POSIXct (strptime(myframe2$Timestamp, "%d.%m.%Y
%H:%M"), tz="GMT")
head(myframe2)
str(myframe2)

# In the end I want a frame like this:
datframeres <- data.frame(Timestamp=c("2013-08-02 22:10:00", "2013-08-02
23:09:00","2013-08-03 00:08:00","2013-08-03 01:07:00", "2013-08-03
02:06:00", "2013-08-03 03:05:00",
"2013-08-03 04:04:00","2013-08-03 05:06:20","2013-08-03 06:08:40",
"2013-08-03 07:11:00", "2013-08-03 08:13:20", "2013-08-03 09:15:40",
"2013-08-03 10:18:00")
, tidalclass =c("NW", "HW-5","HW-4", "HW-3", "HW-2", "HW-1", "HW",
"HW+1","HW+2","HW+3", "HW+4","HW+5", "NW"))

datframeres

# That means: I want to expand to 13 classes instead of the two classes "HW"
and "NW": "HW", "HW+1", "HW+2" and so on.
# The time gap between HW and NW is not always quite the same (always around
6 hours). So I would divide the time gap by 6 and add this number (0:59 and
1:02:20 respectively) to the timestamp before.
# I do not know how to do this. Does anyone know how to do this? Many thanks
in advance!
Tagmarie

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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