当前位置: 首页 > 知识库问答 >
问题:

具有多个日期的条目的日期之间的天数

邓光赫
2023-03-14

我有一个数据集,我需要在其中计算不同日期和初始日期之间的天差。更准确地说,这是列表的示例:

date    page    count
23/01/2015  a   1
08/01/2015  b   514
09/01/2015  b   532
10/01/2015  b   175
11/01/2015  b   89
12/01/2015  b   113
13/01/2015  b   97
10/01/2015  c   373
11/01/2015  c   373
12/01/2015  c   315
13/01/2015  c   104
14/01/2015  c   52
15/01/2015  c   21
09/02/2015  d   13
10/02/2015  d   15
11/02/2015  d   6
12/02/2015  d   2
13/02/2015  d   5
14/02/2015  d   6
15/02/2015  d   6

我想要实现的是计算页面“b”中的第一个日期与剩余天数之间的天数。因此,对于页面“b”,我现在认为第二个条目是第一个日期后的 1 天,下一个条目是 2 天,依此类推。这里的问题是我有不同的页面和不同的初始日期。

谢谢

共有3个答案

谢雅珺
2023-03-14

date列转换为“date”类,并使用ave中的第一个日期彼此相减。未使用任何包。

DF$date <- as.Date(DF$date, "%d/%m/%Y")
transform(DF, offset = ave(as.numeric(date), page, FUN = function(x) x - x[1]))

如果我们知道页面中的日期总是连续的,那么最后一行可以简化为:

transform(DF, offset = ave(count, page, FUN = seq_along) - 1)

无论哪种情况,我们都会得到:

         date page count offset
1  2015-01-23    a     1      0
2  2015-01-08    b   514      0
3  2015-01-09    b   532      1
4  2015-01-10    b   175      2
5  2015-01-11    b    89      3
6  2015-01-12    b   113      4
7  2015-01-13    b    97      5
8  2015-01-10    c   373      0
9  2015-01-11    c   373      1
10 2015-01-12    c   315      2
11 2015-01-13    c   104      3
12 2015-01-14    c    52      4
13 2015-01-15    c    21      5
14 2015-02-09    d    13      0
15 2015-02-10    d    15      1
16 2015-02-11    d     6      2
17 2015-02-12    d     2      3
18 2015-02-13    d     5      4
19 2015-02-14    d     6      5
20 2015-02-15    d     6      6

注:

我们将其用作DF

Lines <- "date    page    count
23/01/2015  a   1
08/01/2015  b   514
09/01/2015  b   532
10/01/2015  b   175
11/01/2015  b   89
12/01/2015  b   113
13/01/2015  b   97
10/01/2015  c   373
11/01/2015  c   373
12/01/2015  c   315
13/01/2015  c   104
14/01/2015  c   52
15/01/2015  c   21
09/02/2015  d   13
10/02/2015  d   15
11/02/2015  d   6
12/02/2015  d   2
13/02/2015  d   5
14/02/2015  d   6
15/02/2015  d   6"
DF <- read.table(text = Lines, header = TRUE)
余阳秋
2023-03-14

在Excel中,如果日期从A2开始,页面从B2开始,那么在D2中尝试复制此公式

=A2-INDEX(A$2:A2,MATCH(B2,B$2:B2,0))

使用INDEX/MATCH查找该页面的第一个日期并减去当前日期以提供差异-对于页面的第一个日期,它将为您提供零

沈高峻
2023-03-14

试试吧

library(dplyr)
df2 %>% 
    mutate(date = as.Date(date, format='%d/%m/%Y')) %>% 
    group_by(page) %>% 
    mutate(Diff= abs(as.numeric(date[1L]-date)))

或者base R选项将是

   unsplit(lapply(split(df2, df2$page), function(x) {
            Date <- as.Date(x$date, format='%d/%m/%Y')
           x$Diff <- as.numeric(Date-Date[1L])
           x  }), df2$page)
 类似资料:
  • 问题内容: 查看两个日期之间有多少整天的最短方法是什么?这就是我现在正在做的。 问题答案: 假设您确实有两个日期对象,则可以从另一个对象中减去一个,然后查询结果对象的天数: 它也适用于日期时间-我认为它会四舍五入到最近的日期:

  • 问题内容: 我想比较我的Android应用程序的两个日期,但是遇到了一个非常奇怪的问题。 例如: 如果我将日期设置为127天之前: 然后将其与当前日期(两天之间)进行比较 它将返回22,这根本不是预期的结果。 我做错什么了吗?还是班上有问题? 问题答案: 请参考此代码,这可能会对您有所帮助。

  • 我需要计算两个日期之间的天数差。 最后我需要知道某个日期是否已经到期。 但我想不出解决办法。 字段的类型为datetime 服务ts 检查许可证。ts

  • 问题内容: 如何使用PHP查找两个日期之间的天数? 问题答案:

  • 我有两次约会。一个是以YYYYMMDD格式从其他应用程序的表中检索的,第二个日期是本地时间,我需要这两个日期之间的天数/月/年。 我试过了 但这给了我一些乱七八糟的数字。 变量$t=Fri Dec31 00:00:00 9999 变量$今天=Wed Feb19 14:40:55 2020 产出:25182094888 有什么想法吗?提前谢谢。

  • 问题内容: 我有两个这样的表: 表格1 表2 我想从 Table1中 选择并插入 Table2中 。 例如: 在表1中,我有这个 在表2中,我想要这个 带有样本数据的表结构 问题答案: 感谢您的架构。它使处理您的问题变得容易。我对您的架构进行了一些更改以利用auto_increment 在这里,我在emp_leave_daywise表上添加了唯一约束,因为id整数上的主键不能确保记录不重复。 em