我想确定数据帧(DF)
的潮汐状态
DF <- data.frame(Date = c(2012-01-01 05:37:00,2012-01-01 05:50:00,2012-01-01 05:58:00), Tide= NA)
基于以下Tides
数据框:
Tides <- data.frame(Date=c(2012-01-01 05:31:00,2012-01-01 11:30:00,2012-01-01 17:58:00), Tide=c(low tide,high tide,low tide))
因此,我想根据数据与low
或high
与low
的亲近度,将数据分为high
和Tide
潮。数据框。
我试图首先在Tides
数据帧中创建带有更多数据点的间隔,但是我没有成功,我也不确定那是否是正确的开始方式
我想得到这个结果,但是数据已经超过了几年,所以无法手动完成。
DF <- data.frame(Date = c(2012-01-01 05:37:00,2012-01-01 05:50:00,2012-01-01 05:58:00), Tide= c(low tide,low tide,low tide))
答案 0 :(得分:0)
我相信可以使用which.min
完成此操作,并且我正在根据绝对差值找到最近的时间。我已使用purrr
逐行执行此操作。
我首先将日期时间转换为POSIXct:
DF = DF %>%
mutate(Date = as.POSIXct(Date))
Tides = Tides %>%
mutate(Date = as.POSIXct(Date))
代码如下:
require(dplyr)
require(purrr)
DF = DF %>%
dplyr::mutate(Tide = purrr::map_chr(.x=Date,~as.character(Tides$Tide[which.min(abs(Tides$Date-.x))])))
让我知道它是否有效。