【发布时间】:2014-08-22 13:34:50
【问题描述】:
我有一个包含大约 70,000 行的数据框,我正在尝试根据日期时间变量获取计数> 我一直在使用 plyr 进行其他分析,但这个分析不起作用。我的数据框如下:
Create.Date.Time Service Closing.Date.Time
1 2013-06-01 12:59:00 AV 2013-06-01 13:59:00
2 2013-06-02 07:56:00 SERVICE684793 2013-06-02 08:59:00
3 2013-06-02 09:39:00 SERVICE684793 2013-06-03 12:01:00
4 2013-06-02 14:14:00 SERVICE684796 2013-06-02 14:55:00
5 2013-06-02 17:20:00 SERVICE684797 2013-06-03 12:06:00
6 2013-06-03 07:20:00 SERVICE684793 2013-06-03 07:39:00
7 2013-06-03 08:02:00 SERVICE684839 2013-06-03 12:09:00
8 2013-06-03 08:04:00 SERVICE684841 2013-06-04 08:05:00
9 2013-06-03 08:04:00 SERVICE684841 2013-06-05 08:06:00
10 2013-06-03 08:08:00 SERVICE684841 2013-06-03 08:08:00
我的目标是获取每个 Create.Date.Time 已关闭的观察次数。我不想使用 for 循环,因为这将花费很长时间。 我想用 plyr,函数是一个计数:
计算观察次数,其中
Closing.Date.Time
对于每个Create.Date.Time 对于每个Service.
我的起点是ddply (df, .(Service, Create.Date.Time), ...),但我的函数有问题,因为值取决于我的Create.Date.Time,我不知道如何写。有人可以帮我吗?
我想最终得到一个这样的数据框:
Service Create.Date.Time Num.Closed
AV 2013-06-01 12:59:00 0
SERVICE684793 2013-06-02 07:56:00 0
SERVICE684793 2013-06-02 09:39:00 1
SERVICE684793 2013-06-03 07:20:00 1
SERVICE684796 2013-06-02 14:14:00 0
SERVICE684797 2013-06-02 17:20:00 0
SERVICE684839 2013-06-03 08:02:00 0
SERVICE684841 2013-06-03 08:04:00 0
SERVICE684841 2013-06-03 08:04:00 0
SERVICE684841 2013-06-03 08:08:00 3
【问题讨论】:
-
在您展示的数据集中。
with(df, Closing.Date.Time <=Create.Date.Time)# [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE。只有一行是 TRUE。我不确定您是如何在预期输出中得到3的。 -
我实际上想要一个累积计数,我自己输入了预期的数据框,例如,对于我的数据框第 10 行的 Create.Date.Time,对该服务有三个观察结果结束时间
-
您能否使用
dput(df)提供您的数据框,其中df是您的数据框? -
@user3770767。对于
SERVICE684797行,看起来像Closing.date.time <= Create.Date.Time'. So, Num.Closed would be1`? -
@akrun,不,不是,因为截止日期是2013.06.03,而开幕日期是2013.06.02。所以截止日期是在开幕日期之后。我已经尝试修改您的代码以包含日期。还没有成功:-(