【发布时间】:2015-03-29 22:30:02
【问题描述】:
我创建了一个数据框架,其中包含四年期间所有世界杯比赛的精英高山滑雪者的比赛结果。我正在使用 dplyr 并按 Race ID 对比赛进行分组,按运动员升序排列比赛结果(从第一个到最后一个),并将完成时间转换为分钟。
我现在想创建一个名为 Percent.From.Winning.Time 的新变量,它可以使每个完成时间相对于特定比赛的获胜时间(即,第一名的完成者最终的值为 100,而其余的获胜时间百分比小于 100)。例如,假设某场比赛的获胜时间为 120 秒,而第二名的获胜时间为 121 秒。我会计算:[1 - ((121-120)/120)] * 100 = 99.16。
请注意,我还将未完成时间(例如运动员被取消资格或未完成)指定为 NA。
这是一些示例数据:
Raceid=c(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2)
Athleteid=c(45, 21, 56, 64, 10, 76, 88, 91, 23, 13, 123, 2, 87, 91)
Position = c(1, 2, 3, 4, 5, NA, NA, 1, 2, 3, 4, NA, NA, NA)
Timetot3= c(144, 143, 142, 141, 140, NA, NA, 123, 122, 121, 120, NA, NA, NA)
WC.race.results=cbind(Raceid, Athleteid, Position, Timetot3)
关于如何在 dplyr 中编写一个函数来生成这个新变量 Percent.From.Winning.Time,是否有人有建议或解决方案?
非常感谢您的考虑。
马特
【问题讨论】:
标签: r dplyr percentage