我的目标是以有效的方式根据条件计算文件中字符串的出现次数 .
我在输入csv文件中有大约45k条记录 . 我需要全部读取它们并创建一个新文件,该文件描述了特定持续时间内原始文件中字符串的出现次数 .
Input File:
Timestamp Field
7/13/2013 10:30 ABC
7/13/2013 11:30 ABC
7/13/2013 10:34 ABC
7/13/2013 10:15 CDE
7/13/2013 10:00 ABC
7/13/2013 10:14 CDE
7/13/2013 12:30 ABC
7/13/2013 00:30 ABC
7/13/2013 07:30 CDE
主要目标是计算特定时段内的字段出现次数 .
output 我期待的是:
Slots ABC CDE
7/13/2013 00:01-03:00 1 0
7/13/2013 03:01-06:00 0 0
7/13/2013 06:01-09:00 0 1
7/13/2013 09:01-12:00 4 2
7/13/2013 12:01-15:00 1 0
7/13/2013 15:01-18:00 0 0
7/13/2013 18:01-21:00 0 0
7/13/2013 21:01-24:00 0 0
我写了一个蛮力代码来完成我的工作,但是需要很长的时间才能完成 . 我正在寻找一个有效的代码来完成这项任务 .
我有一个单独的数据框,包含时间段(day_hour)和字段名称(field_data) . 我的强力方法是使用两个for循环来搜索两个数据帧的所有记录并相应地计算出现次数 .
如果我可以使用 table()
之类的功能或者在这种情况下可以提供帮助的功能,请指导我 .
1 回答
我首先将"Timestamp"转换为实际时间对象,然后使用
cut
创建三小时间隔,并使用table
获取您要查找的输出:以下是一些示例数据:
您也可以使用"data.table"(至少版本1.8.11)并使用
dcast.data.table
. 步骤区域或多或少相同 .