我有这个特定的数据框,并希望对此进行一些操作。基本上,我想使值交错,以使薪水列中的每个条目都向上移动以替换较早季节的薪水。
我该怎么做?通过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
答案 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