R并申请信息

时间:2014-11-29 16:13:40

标签: r apply

我可以找到任何答案。所以我已经得到了以下代码并尝试将其应用于应用程序,因此它可以更快地完成工作,我的数据集为130k行。我需要一个应用程序来计算马背的缺失时间(长度)和获胜的马时间。问题是Behind列后面给出了马后面的距离,而不是第一个1.所以我需要创建一个随函数继续运行的变量,如果确定了新的种族,发现位置== 1,它重置变量。

missingTimes <- function(x) {
    L <- 2.4384
    for(i in 1:nrow(x) - 10) {
        distanceL <- (x$distance[i] * 1000) / L
        LperS <- x$Winner.Race.time[i] / distanceL

        if(x$position[i] == 1 && !is.na(x$position[i])) {
            distanceL <- NULL
            LperS <- NULL
        }

        if(grepl("L",x$Behind[i])) {
            x$results[i] <- (distanceL + as.numeric(sub("L", "", x$Behind[i]))) * LperS
        }
    }
}

我需要至少10个声望来发布图片,这就是为什么我给你链接! http://i.stack.imgur.com/xN23M.png http://i.stack.imgur.com/Cspfr.png

结果应该只给我一个列,其中包含其他马匹完成时间的正确时间,其格式如列Winner Race Time

为了进一步了解,Imma会为您自己计算一些结果:

从第一行开始,它会看到position = 1,因此它会清除变量。 然后它取距离* 1000,并将其除以常数L,

2.375 * 1000 / 2.4384 = 973.99

然后需要花费时间来完成1个长度(L),

290.9 / 973.99 = 0.298

现在获得第二匹马的结束时间它将长度BEHIND加到赛道的距离上并将其乘以每秒的长度,

973.99 + 2.25 = 976.24 * 0.298 = 290.91952

接下来的马匹时间是:

976.24 + 13 = 989.24 * 0.298 = 294.79352

依此类推,记得当它达到位置= 1时,距离需要重置

我做的另一种选择是将distanceL放在一个单独的列中,与LperS相同,当然是在计算之后。 如果你能指导我完成所需的步骤,那就太棒了。我是一个完整的R菜鸟,所以请描述一下。我希望你了解我的理解! 谢谢!

0 个答案:

没有答案