gpt4 book ai didi

r - 根据条件高效统计文件中字符串出现的次数

转载 作者:行者123 更新时间:2023-12-02 21:45:41 24 4
gpt4 key购买 nike

我的目标是根据条件以有效的方式计算文件中字符串出现的次数。

输入 csv 文件中有大约 45k 条记录。我需要读取所有这些内容并创建一个新文件,该文件描述特定时间内原始文件中字符串出现的次数。

输入文件:

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

主要目标是计算特定时间段内字段出现的次数。

我期望的输出是:

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() 等函数或在这种情况下可以提供帮助的函数,请指导我。

最佳答案

我首先将“Timestamp”转换为实际时间对象,然后使用 cut 创建三小时间隔,并使用 table 获取您的输出寻找:

mydf$Times <- strptime(mydf$Timestamp, "%m/%d/%Y %H:%M")
mydf$Breaks <- cut(mydf$Times, "3 hours")
table(mydf$Breaks, mydf$Field)
#
# ABC CDE
# 2013-07-13 00:00:00 1 0
# 2013-07-13 03:00:00 0 0
# 2013-07-13 06:00:00 0 1
# 2013-07-13 09:00:00 4 2
# 2013-07-13 12:00:00 1 0

以下是一些示例数据:

mydf <- structure(list(Timestamp = c("7/13/2013 10:30", "7/13/2013 11:30", 
"7/13/2013 10:34", "7/13/2013 10:15", "7/13/2013 10:00", "7/13/2013 10:14",
"7/13/2013 12:30", "7/13/2013 00:30", "7/13/2013 07:30"),
Field = c("ABC", "ABC", "ABC", "CDE", "ABC", "CDE", "ABC", "ABC", "CDE")),
.Names = c("Timestamp", "Field"),
class = "data.frame", row.names = c(NA, -9L))

您还可以使用“data.table”(至少版本 1.8.11+)并使用 dcast.data.table。步骤大致相同。

library(data.table)
library(reshape2)
packageVersion("data.table")
# [1] ‘1.8.11’

DT <- data.table(mydf)
DT[, Times := as.POSIXct(strptime(Timestamp, "%m/%d/%Y %H:%M"))]
DT[, Grps := cut(Times, "3 hours")]
dcast.data.table(DT, Grps ~ Field, value.var="Field")
# 'Aggregate function missing, defaulting to 'length'
# Grps ABC CDE
# 1: 2013-07-13 00:00:00 1 0
# 2: 2013-07-13 06:00:00 0 1
# 3: 2013-07-13 09:00:00 4 2
# 4: 2013-07-13 12:00:00 1 0

关于r - 根据条件高效统计文件中字符串出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19546246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com