我有GPS标签数据,这是只有过夜的位置.这已经从一个主要数据集中过滤出来了,这个主要数据集根据日落和日出时间计算白天和黑夜.由于所有白天的位置都已被移除,夜间可以被归类为下午3点到上午10点,以考虑到季节性变化,并确保包括所有数据点.
数据当前格式为正常日期和时间,例如2019-03-22 21:53:00和2019-03-23 02:46:00.然而,从技术上讲,这些数据来自同一晚.我想在R中的数据框中添加一个新列,它将每个晚上的数据分组(而不是在它们的"真实"日期),并将午夜之后的日期/时间分配给开始日期.因此,加上上面两个日期,它们都应该是2019-03-22.
到目前为止,我已经try 了以下代码,但它出现了错误,并且输出列是数字(17976)而不是日期:
# Convert DateAndTime column to POSIXct format
sample$DateTime <- as.POSIXct(sample$DateTime, format = "%d/%m/%Y %H:%M")
# Extract date component
sample$Date <- as.Date(sample$DateTime)
# Assign the night date
sample$NightDate <- ifelse(hour(sample$DateTime) < 8,
sample$Date - days(1),
sample$Date)
# change NightDate from numbers (17976) back to a date
as.Date(sample$NightDate)
# error which occurs: Error in as.Date.numeric(GE.sample$NightDate) : 'origin' must be supplied
由于数据保护,我不能共享很多数据,但下面是我正在处理的DATETIME列的一个示例:
# DateTime Data set
2019-03-22 00:34:00
2019-03-22 02:43:00
2019-03-22 04:56:00
2019-03-22 19:28:00
2019-03-22 21:53:00
2019-03-23 02:46:00
2019-03-23 20:32:00
2019-03-23 23:04:00
2019-03-24 01:40:00
2019-03-24 04:17:00
2019-03-24 19:34:00
2019-03-24 23:22:00
2019-03-25 02:03:00
2019-03-25 04:48:00
我对R还很陌生,所以任何帮助都将不胜感激,谢谢你抽出时间来!