在 r 数据框中按时间顺序对 4 组中的行进行排序

排山倒海

我有一个数据框,第一列作为 id ,第二列作为日期。其他 3 列包含一些其他随机值。

数据框的大小 = 5 列和 160000 行。

我想根据日期的时间顺序对前 4 条记录与第二列中的记录进行排序。4 个中最早的记录应该在最前面,最新的记录应该在最后。在此之后,我必须继续对 4 组中的所有行进行排序。

ID  Date        A   B   C   
X   10/27/2011  12  47  78
Y   09/28/2015  27  14  41
Z   01/14/2013  24  25  45
W   04/21/2005  14  74  21
-
-
-
-
upto 160000 rows



 output

    ID  Date        A   B   C
    W   04/21/2005  14  74  21
    X   10/27/2011  12  47  78
    Z   01/14/2013  24  25  45
    Y   09/28/2015  27  14  41

-
-
-
upto 160000 rows

有什么办法可以做到这一点?

我现在正在使用它,但无法将其分成 4 行的组

d[order(as.Date(d$df, format="%d/%m/%Y")),]

列的数据类型是整数。我正在尝试将其作为日期阅读。

谢谢

全部挖掘

您可以使用整数除法%/%为每组四个提供一个“虚拟”索引:

# recreate a random DF
set.seed(123)
DF <- 
data.frame(ID=paste0('ID',1:10),
           Date=c("21/06/2017", "23/06/2017", "10/06/2017", "18/06/2017", "27/06/2017", 
                  "01/06/2017", "13/06/2017", "07/06/2017", "24/06/2017", "05/06/2017"),
           A=rnorm(10,4,100))

# define virtual indexes
groupsOf4 <- (1:nrow(DF)-1) %/% 4
# order by groupsOf4 and then by Date
sortedDF <- DF[order(groupsOf4, as.Date(DF$Date, format="%d/%m/%Y")),]

结果 :

> DF
     ID       Date          A
1   ID1 21/06/2017  -52.04756
2   ID2 23/06/2017  -19.01775
3   ID3 10/06/2017  159.87083
4   ID4 18/06/2017   11.05084
5   ID5 27/06/2017   16.92877
6   ID6 01/06/2017  175.50650
7   ID7 13/06/2017   50.09162
8   ID8 07/06/2017 -122.50612
9   ID9 24/06/2017  -64.68529
10 ID10 05/06/2017  -40.56620

> sortedDF
     ID       Date          A
3   ID3 10/06/2017  159.87083
4   ID4 18/06/2017   11.05084
1   ID1 21/06/2017  -52.04756
2   ID2 23/06/2017  -19.01775
6   ID6 01/06/2017  175.50650
8   ID8 07/06/2017 -122.50612
7   ID7 13/06/2017   50.09162
5   ID5 27/06/2017   16.92877
10 ID10 05/06/2017  -40.56620
9   ID9 24/06/2017  -64.68529

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从熊猫数据框中绘制按时间顺序排序的数据

R:对数据框中的行进行重新排序

R中coplot或散点图的按时间顺序排序

根据数据框中的变量组对行进行排序

无法在Rails 4中按时间顺序订购ActiveRecord关系

按 R 中的列值对表行进行排序

在数据框中按组对行进行排序,排序或排序

如何使用熊猫对组中的行进行排序(降序排列)

如何仅对熊猫组中的某些行进行排序?

如何在sql中按组对行进行排序

是否可以在vim中对一组行进行排序?

在R中按字母顺序对字符串的每一行进行排序

使用R中的条件对数据框中的特定组进行排序

将数据框多列与R中的行进行比较

在 R 中按时间计数

按R中的多个列(一组较大的列)对数据框进行排序

在Hive中,如何按时间段和数据页对日志顺序进行排序

在R中:根据另一个表中的数据对数据帧中的行进行重新排序

用列之间的多重条件对行进行分组,包括 R / dplyr中的排序

在JPA中按所需顺序对每个组的子行进行排序,并在每个组中采用所需的顶行数

如何按R中的另一个数据框对数据框中的列顺序进行排序?

按时间顺序对Firestore集合中的文档进行排序

在tidyverse中按时间顺序对月份名称进行排序

如何检查日期在 R 中是否按时间顺序排列?

无法在熊猫数据框中按时间戳编制索引

如何在给定组的适当位置对熊猫中的行进行排序?

在熊猫数据框中以不按字母顺序的方式对行进行排序

按列对数据框中的某些行进行排序

在熊猫数据框中对行进行排序并获取列ID