【发布时间】:2019-05-13 15:01:59
【问题描述】:
我有一个数据框,它由通过代码链接在一起的事件组成。这些事件中的每一个都有一个计数、一个日期和一个时间。我想要一个给定的代码,找到最接近给定日期和时间的计数。以这个数据框为例:
x.df <- structure(list(id = 1:20, code = c(1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), count = c(2L,
3L, 5L, 7L, 8L, 1L, 2L, 7L, 9L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L,
4L, 8L, 8L), date = structure(c(1L, 1L, 2L, 2L, 3L, 4L, 4L, 4L,
5L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 8L, 8L, 9L, 9L), .Label = c("2019-01-01",
"2019-01-02", "2019-01-03", "2019-02-11", "2019-02-12", "2019-04-22",
"2019-04-23", "2019-04-24", "2019-04-25"), class = "factor"),
time = structure(c(11L, 12L, 10L, 13L, 14L, 1L, 2L, 5L, 7L,
17L, 19L, 2L, 3L, 9L, 18L, 4L, 6L, 8L, 15L, 16L), .Label = c("01:01:01",
"02:01:02", "02:11:02", "03:01:03", "07:01:07", "09:01:04",
"09:01:09", "10:01:04", "12:01:02", "12:10:01", "12:12:12",
"12:34:23", "13:15:30", "14:19:23", "18:01:08", "19:01:08",
"22:02:12", "23:01:03", "23:02:12"), class = "factor")), class = "data.frame", row.names = c(NA,
-20L))
我想要一个函数
findcount(code,date,time)
所以
findcount(1,"2019-01-02","12:00:00") = 5
findcount(2,"2019-02-02","14:10:23") = 1
findcount(3,"2019-04-29","16:10:00") = 8
我试图对数据进行子集化;对数据进行排序,然后计算一些时间差,但它不起作用。此外,可能有一种比我想象的更有效的方法来进行这种操作。谢谢。
【问题讨论】:
-
最接近的意思 - 接近多少?