У меня есть набор игровых данных, и я наблюдаю количество очков одного игрока.
da = data.frame(points = c(144,186,220,410,433))
da
points
1 144
2 186
3 220
4 410
5 433
Я также сейчас, на каком уровне был игрок, потому что я знаю диапазоны очков для разных уровни.
ranges = data.frame(level = c(1,2,3,4,5), points_from = c(0,100,200,300,430), points_to = c(100,170,300,430,550))
ranges
level points_from points_to
1 1 0 100
2 2 100 170
3 3 200 300
4 4 300 430
5 5 430 550
Теперь я хочу вычислить новую переменную, которая указывает, насколько далеко игрок был от следующего уровня. Он рассчитывается по $ $ точкам / диапазонам $ points_to этого заданного уровня c.
Например, если у игрока 144 очка, а следующий уровень достигается при достижении 170 очков, прогресс на уровне 144 /170.
Таким образом, набор данных, который я хочу получить, выглядит следующим образом:
da_new = data.frame(points = c(144,186,220,410,433), points_to = c(170,300,300,430,550), level_progress = c(144/170,186/300,220/300,410/430,433/550))
da_new
points points_to level_progress
1 144 170 0.8471
2 186 300 0.6200
3 220 300 0.7333
4 410 430 0.9535
5 433 550 0.7873
Как теперь я могу вычислить эту переменную?