如何解决在日期范围R
这可能有一个非常简单的解决方案。我有两个数据集。一个是POSIXct tweet时间戳的向量,第二个是POSIXct ADL HEAT Map时间戳的向量。
我正在寻求构建一个函数,该函数可以让我从tweets向量中获取日期,并为每一个计数ADL HEAT Map向量中属于tweet指定范围内的时间戳数。
我的目标是构建函数,以便可以放入tweets向量,ADL向量,从tweets向量开始计数的天数,以及从tweets向量停止计数的天数,以及返回一个与tweets数据长度相同的向量。
我已经在这里尝试了该解决方案,但没有成功:Count number of occurences in date range in R
这是我正在尝试做的一个例子。这是我正在使用的数据集的较小版本:
tweets <- c("2016-12-12 14:34:00 GMT","2016-12-5 17:20:06 GMT")
ADLData <- c("2016-12-11 16:30:00 GMT","2016-12-7 18:00:00 GMT","2016-12-2 09:10:00 GMT")
我想创建一个函数,我们将其命名为countingfunction
,该函数可让我输入第一个数据集,第二个数据集并调用许多天以进行回顾。在此示例中,我选择了7天:
countingfunction(tweets,ADLData,7)
理想情况下,这将返回一个长度为tweets
的向量,或者在这种情况下返回2,其中包含{{1}中的日期之后的7天内发生的ADLData
中的事件数量的计数}}。在这种情况下,tweets
。
解决方法
因此,如果我对您的理解正确,那么您将拥有此类数据:
tweets <- c(as.POSIXct("2020-08-16",tz = ""),as.POSIXct("2020-08-15",as.POSIXct("2020-08-14",as.POSIXct("2020-08-13",tz = ""))
ADL <- c(as.POSIXct("2020-08-15",tz = ""))
您想要做的是说一条推文是否在ADL日期范围内。可以做到这一点:
ifelse(tweets %in% ADL,print("its in"),print("its not"))
您可以轻松地将其分配给另一个向量,然后指出是否在其中。
,您可以在countingfunction
的帮助下编写outer
,并使用difftime
计算两个向量的每个值之间的时间差。
countingfunction <- function(x1,x2,n) {
mat <- outer(x1,difftime,units = 'days')
rowSums(mat > 0 & mat <= n)
}
假设您具有像这样的POSIXct
类的向量:
tweets <- as.POSIXct(c("2016-12-12 14:34:00","2016-12-5 17:20:06"),tz = 'GMT')
ADLData <- as.POSIXct(c("2016-12-11 16:30:00","2016-12-7 18:00:00","2016-12-2 09:10:00"),tz = 'GMT')
n <- 7
您可以将它们传递为:
countingfunction(tweets,ADLData,n)
#[1] 2 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。