我想确定数据帧(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浪潮与Tide数据帧的接近程度,将数据分为low浪潮和high浪潮。
我试图首先在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))发布于 2019-10-28 21:17:25
我相信这可以使用which.min来完成,我正在根据绝对差找到最近的时间。我已经使用purrr逐行完成了这个操作。
我首先将datetimes转换为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))])))如果它起作用了,请告诉我。
https://stackoverflow.com/questions/58591398
复制相似问题