我最近学会了在R数据帧中做一些基于行的操作,例如。
df<-data.frame(c(1,5,10,21,33,50,73,80,99,102))
output['DaysBetween']<-c(0,df[-1,1]-df[-nrow(df),1])
但我真的不明白那里发生了什么。
我也试图根据连续的行应用一些操作,例如:
df
Days, DaysSinceLast, DaysToNext
1, 0, 4
5, 4, 5
等
我不知道,即使使用上面提到的['DaysBetween']
,如何生成该操作,我尝试这样做也失败了。
有人可以向我解释......
a)output['DaysBetween']
逻辑中实际发生了什么?
b)如何进行output['DaysToNext']
?
c)然后我如何按顺序排列这些,即生成一个新的列output['Ranking']
,如果在DaysToNext
上排在第一位,那么它将会到达哪里?(我不想实际这样做是出于其他原因)
非常感谢,非常感谢
编辑:
我的前两个问题现在已经解决了,谢谢。理想情况下,我接下来要做的是:
df
row value
1 , 10
2 , 8
3 , 15
并采取这一点并产生:
df
row value, ranking
1 , 10 , 2
2 , 8 , 3
3 , 15 , 1
当我尝试创建我的df的副本然后对其进行排序时,它似乎失败了,我不确定为什么,但这似乎也是一种效率低下的方法吗?
编辑:问题已经用所描述的低效方法解决了