将日期时间分为白天和黑夜-不起作用

问题描述

我有来自Suncalc软件包的日出和日落数据,以及来自传感器的日期和时间数据。它们都具有带有MST时区的POSIXct结构。当我写ifelse语句时,它假设夜晚是从午夜到中午,而白天是从13:00:00到23:00:00。有什么想法吗?

我之前已经将此代码用于另一个项目,但是我真的不知道这里发生了什么:

sbsp_pyra_sunlight_combined <- sunlight_data %>%<br/>
inner_join(sbsp_2018_2019_pyra_data,by = 'date')%>%<br/>
mutate('sunlight' = ifelse(datetime > sunrise & datetime < sunset,'day','night'))

供参考,sunlight_data具有以下结构:

'data.frame':   791 obs. of  6 variables:<br/>
 $ date: Date,format: "2017-08-01" "2017-08-02" "2017-08-03" ...<br/>
 $ lat: num  37.9 37.9 37.9 37.9 37.9 37.9 37.9 37.9 37.9 37.9 ...<br/>
 $ lon: num  -108 -108 -108 -108 -108 ...<br/>
 $ sunrise: POSIXct,format: "2017-08-01 05:15:30" "2017-08-02 05:16:22" "2017-08-03 05:17:14" ...<br/>
 $ solarNoon: POSIXct,format: "2017-08-01 12:18:20" "2017-08-02 12:18:16" "2017-08-03 12:18:12" ...<br/>
 $ sunset: POSIXct,format: "2017-08-01 19:21:10" "2017-08-02 19:20:11" "2017-08-03 19:19:11" ...<br/>

**sbsp_2018_2019_pyra_data has this structure:** <br/>
data.frame':    18977 obs. of  6 variables:<br/>
 $ date: Date,format: "2017-08-01" "2017-08-01" ...<br/>
 $ datetime: POSIXct,format: "2017-08-01 07:00:00" "2017-08-01 08:00:00" ...<br/>
 $ PyDwn_Unfilt_W: num  32.2 59.7 156.2 90.7 114.7 ...<br/>
 $ PyDwn_Filt_W  : num  28.7 52.7 138 80.1 100.6 ...<br/>
 $ PyUp_Unfilt_W : num  140 284 733 438 586 ...<br/>
 $ PyUp_Filt_W   : num  63 147 384 224 298 ...<br/>

最后,新数据框(sbsp_pyra_sunlight_combined)具有以下结构

'data.frame':   18977 obs. of  12 variables:<br/>
 $ date : Date,format: "2017-08-01" "2017-08-01" ...<br/>
 $ lat: num  37.9 37.9 37.9 37.9 37.9 37.9 37.9 37.9 37.9 37.9 ...<br/>
 $ lon: num  -108 -108 -108 -108 -108 ...<br/>
 $ sunrise: POSIXct,format: "2017-08-01 05:15:30" "2017-08-01 05:15:30" ...<br/>
 $ solarNoon: POSIXct,format: "2017-08-01 12:18:20" "2017-08-01 12:18:20" ...<br/>
 $ sunset: POSIXct,format: "2017-08-01 19:21:10" "2017-08-01 19:21:10" ...<br/>
 $ datetime: POSIXct,format: "2017-08-01 07:00:00" "2017-08-01 08:00:00" ...<br/>
 $ PyDwn_Unfilt_W: num  32.2 59.7 156.2 90.7 114.7 ...<br/>
 $ PyDwn_Filt_W  : num  28.7 52.7 138 80.1 100.6 ...<br/>
 $ PyUp_Unfilt_W : num  140 284 733 438 586 ...<br/>
 $ PyUp_Filt_W : num  63 147 384 224 298 ...<br/>
 $ sunlight: chr  "night" "night" "night" "night" ..<br/>

如果结构匹配,所有DF上的所有日期时间都将与POSIXct和MST同步,那么2017-08-01 07:00:00怎么会在日出为2017-08-01 05:15:30而日落为2017-08-01 19:21:10的夜晚呢? / p>

谢谢!!!这真的让我感到难过...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)