Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于时间戳对项目进行分组_R - Fatal编程技术网

R 基于时间戳对项目进行分组

R 基于时间戳对项目进行分组,r,R,我有一个数据框,其中包含如下唯一行: df <- unique(data.frame(Timestamp=as.POSIXct(strptime(c('2018-01-08 13:26:53', '2018-01-08 13:33:33', '2018-01-08 13:45:12',

我有一个数据框,其中包含如下唯一行:

df <- unique(data.frame(Timestamp=as.POSIXct(strptime(c('2018-01-08 13:26:53', 
                                                 '2018-01-08 13:33:33', 
                                                 '2018-01-08 13:45:12', 
                                                 '2018-01-08 13:45:12', 
                                                 '2018-01-08 14:28:34', 
                                                 '2018-01-08 14:31:32',
                                                 '2018-01-08 14:31:32',
                                                 '2018-01-08 15:13:16',
                                                 '2018-01-08 15:25:19',
                                                 '2018-01-08 15:25:19',
                                                 '2018-01-08 15:25:19',
                                                 '2018-01-08 15:25:19'), "%Y-%m-%d %H:%M:%OS")),
                 Text=c('A', 'B', 'C', 'A', 'B', 'A', 'C', 'D', 'A', 'A', 'B', 'C')))
            Timestamp Text
1 2018-01-08 13:26:53    A
2 2018-01-08 13:33:33    B
3 2018-01-08 13:45:12    C | A
5 2018-01-08 14:28:34    B
7 2018-01-08 14:31:32    C | A
8 2018-01-08 15:13:16    D
9 2018-01-08 15:25:19    C | A | B
我想对具有相同时间戳的项目进行分组,如果出现一次,则始终保持分组项目的相同顺序。所以我的结果应该是这样的:

df <- unique(data.frame(Timestamp=as.POSIXct(strptime(c('2018-01-08 13:26:53', 
                                                 '2018-01-08 13:33:33', 
                                                 '2018-01-08 13:45:12', 
                                                 '2018-01-08 13:45:12', 
                                                 '2018-01-08 14:28:34', 
                                                 '2018-01-08 14:31:32',
                                                 '2018-01-08 14:31:32',
                                                 '2018-01-08 15:13:16',
                                                 '2018-01-08 15:25:19',
                                                 '2018-01-08 15:25:19',
                                                 '2018-01-08 15:25:19',
                                                 '2018-01-08 15:25:19'), "%Y-%m-%d %H:%M:%OS")),
                 Text=c('A', 'B', 'C', 'A', 'B', 'A', 'C', 'D', 'A', 'A', 'B', 'C')))
            Timestamp Text
1 2018-01-08 13:26:53    A
2 2018-01-08 13:33:33    B
3 2018-01-08 13:45:12    C | A
5 2018-01-08 14:28:34    B
7 2018-01-08 14:31:32    C | A
8 2018-01-08 15:13:16    D
9 2018-01-08 15:25:19    C | A | B

有什么有效的建议吗?提前谢谢

您可以使用base R来完成

df <- unique(data.frame(Timestamp=as.POSIXct(strptime(c('2018-01-08 13:26:53', 
                                                        '2018-01-08 13:33:33', 
                                                        '2018-01-08 13:45:12', 
                                                        '2018-01-08 13:45:12', 
                                                        '2018-01-08 14:28:34', 
                                                        '2018-01-08 14:31:32',
                                                        '2018-01-08 14:31:32',
                                                        '2018-01-08 15:13:16',
                                                        '2018-01-08 15:25:19',
                                                        '2018-01-08 15:25:19',
                                                        '2018-01-08 15:25:19',
                                                        '2018-01-08 15:25:19'), "%Y-%m-%d %H:%M:%OS")),
                        Text=c('A', 'B', 'C', 'A', 'B', 'A', 'C', 'D', 'A', 'A', 'B', 'C')))



agg<- aggregate(df[,2], list(df[,1]), function(x) paste0(unique(x)))

aggregateText~Timestamp,df,functionx-pastex,collapse=|?有没有办法让C | a出现一次而不是a | C?对它进行排序?aggregateText~Timestamp,df,functionx pastesortx,discreating=T,collapse=|?注意,通过排序,最后一个条目将是C | B | A而不是C | A | Bso,您是否只需要A之前的C,其余条目将在这两个条目之后?这是一个可行的解决方案,因此我接受它作为答案!也要感谢@RonakShah!