首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于另一个数据帧中的日期创建列

基于另一个数据帧中的日期创建列
EN

Stack Overflow用户
提问于 2019-10-28 20:59:11
回答 1查看 52关注 0票数 0

我想确定数据帧(DF)的潮汐状态

代码语言:javascript
复制
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数据框架:

代码语言:javascript
复制
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))

因此,我想根据它与lowhigh浪潮与Tide数据帧的接近程度,将数据分为low浪潮和high浪潮。

我试图首先在Tides数据帧中创建具有更多数据点的间隔,但我没有成功,我也不确定这是否是正确的开始方式

我希望有这样的结果,但数据超过了几年,所以它不能手动完成。

代码语言:javascript
复制
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))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-28 21:17:25

我相信这可以使用which.min来完成,我正在根据绝对差找到最近的时间。我已经使用purrr逐行完成了这个操作。

我首先将datetimes转换为POSIXct:

代码语言:javascript
复制
DF = DF %>% 
  mutate(Date = as.POSIXct(Date))

Tides = Tides %>% 
  mutate(Date = as.POSIXct(Date))

代码如下:

代码语言:javascript
复制
require(dplyr)
require(purrr)
DF = DF %>% 
  dplyr::mutate(Tide = purrr::map_chr(.x=Date,~as.character(Tides$Tide[which.min(abs(Tides$Date-.x))])))

如果它起作用了,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58591398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档