访问R数据框中的连续/上一行

时间:2015-09-28 11:32:35

标签: r

我最近学会了在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的副本然后对其进行排序时,它似乎失败了,我不确定为什么,但这似乎也是一种效率低下的方法吗?

编辑:问题已经用所描述的低效方法解决了

0 个答案:

没有答案