下面是我的数据集示例,其中我有GPS位置(纬度和经度)以及它们的注册日期和时间:
>头(datanet) 日期&时间[本地]纬度经度1:……
鉴于你的 Local 列是文本,您应该只能与时间文字进行比较:
Local
datanet$split <- ifelse(datanet$Local >= '18:00' | datanet$Local <= '06:00', 'Night', 'Day')
'DateTime'列位于 datanet 数据集,所以我们需要 $
datanet
$
datanet$split<- if_else((hour(datane$DateTime) >= 6) & (hour(datanet$DateTime) < 18), "Day", "Night")
或者使用 with
with
datanet$split <- with(datenet, if_else((hour(DateTime) >= 6) & (hour(DateTime) < 18), "Day", "Night"))
另外,考虑到原始数据 data.table ,语法会
data.table
library(data.table) datanet[, split := if_else((hour(DateTime) >= 6) & (hour(DateTime) < 18), "Day", "Night")]
或者不使用任何 if_else
if_else
datanet[, split := c("Night", "Day")[1 + ((hour(DateTime) >= 6) & (hour(DateTime) < 18))]]