【发布时间】:2016-05-05 14:59:50
【问题描述】:
我有一个数据框,其中包含每 15 分钟值的记录。
我正在使用循环来计算 15 分钟范围内的记录数。 但它非常慢。我觉得将其转换为 data.table 功能将大大加快该过程。
我写了以下循环:
Input$Freq <- array()
for(i in 1:nrow(Input))
{
Input[i,"Freq"]<-0
}
for(i in 1:nrow(Input))
{
for(j in 1:nrow(Input))
{
if(Input[i,"Cur_DateTime"] > Input[j,"Cur_DateTime"] & Input[i,"Cur_DateTime"] < Input[j,"Window_15"])
Input[i,"Freq"] <- Input[i,"Freq"]+1
}
}
【问题讨论】:
-
您可以发布您拥有的示例数据吗?这将有助于提供有效代码的答案。
-
您可以清楚地立即丢弃第一个循环和初始
array分配。将它们替换为以下内容:Input[,"Freq"] <- 0.
标签: r loops data.table