在变量组中重新分配列值

时间:2019-03-06 08:52:55

标签: r dataframe

我有这个特定的数据框,并希望对此进行一些操作。基本上,我想使值交错,以使薪水列中的每个条目都向上移动以替换较早季节的薪水。

我该怎么做?通过iloc还是?如果没有上一个赛季的参赛作品,我希望保持不变(请参阅第3行)。

输入数据框:

   season                       url  salary
1 2016-17 /players/a/abrinal01.html 5994764
2 2017-18 /players/a/abrinal01.html 5725000
3 2008-09 /players/a/ackeral01.html  711517
4 2012-13   /players/a/acyqu01.html  665000
5 2013-14   /players/a/acyqu01.html  788872
6 2014-15   /players/a/acyqu01.html  915243

输出数据框:

   season                       url  salary
1 2016-17 /players/a/abrinal01.html 5725000
2 2017-18 /players/a/abrinal01.html    NA
3 2008-09 /players/a/ackeral01.html  711517
4 2012-13   /players/a/acyqu01.html  788872
5 2013-14   /players/a/acyqu01.html  915243
6 2014-15   /players/a/acyqu01.html    NA

1 个答案:

答案 0 :(得分:1)

我们可以使用lead中的dplyr,假设season的排序如示例所示

library(dplyr)

df1 %>%
  group_by(url) %>%
  mutate(salary = if (n() > 1) lead(salary) else salary)

#   season  url                        salary
#  <fct>   <fct>                       <int>
#1 2016-17 /players/a/abrinal01.html 5725000
#2 2017-18 /players/a/abrinal01.html      NA
#3 2008-09 /players/a/ackeral01.html  711517
#4 2012-13 /players/a/acyqu01.html    788872
#5 2013-14 /players/a/acyqu01.html    915243
#6 2014-15 /players/a/acyqu01.html        NA