首页 > 解决方案 > 将时间点列变成间隔

问题描述

我有一个存储时间点数据的小标题:

data.frame(Time = c(0, 1, 2, 3, 4), readings = c(123, 234, 145, 234, 121))

我想把它变成如下表格:

最初的 结尾
0 1 123 234
1 2 234 145
2 3 145 234
3 4 234 121
... ... ... ...

我更喜欢在 R/tidyverse 中完成它,但如果 python 可以用更简单的方式完成它,我也可以采用一些 python 代码。谢谢!

标签: pythonrtidyverseintervalstibble

解决方案


我们可以base R通过删除数据集的最后一行和第一行并重命名列来做到这一点

setNames(cbind(df1[-nrow(df1), ], df1[-1, ]),
     c("From", "Initial", "To", "End"))[c(1, 3, 2, 4)]
  From To Initial End
1    0  1     123 234
2    1  2     234 145
3    2  3     145 234
4    3  4     234 121

推荐阅读