2017-10-06 241 views
-2

我有一个序列,然后记录每个序列中记录的时间。我试图找到与其相应序列记录的最大时间值。下面的例子:找到序列中的第一个和最后一个值r

Seq seconds 
1 1  1 
2 1  2 
3 1  3 
4 1  4 
5 2  1 
6 2  2 
7 3  1 
8 3  2 
9 3  3 
10 3  4 
11 3  5 

我想结果,告诉我这是记录每一个序列的最大时间。

Seq Time 
1  4 
2  2 
3  5 

回答

1

dplyr的解决方案。

library(dplyr) 
dt2 <- dt %>% 
    arrange(Seq, seconds) %>% 
    group_by(Seq) %>% 
    slice(n()) 
dt2 
# A tibble: 3 x 2 
# Groups: Seq [3] 
    Seq seconds 
    <int> <int> 
1  1  4 
2  2  2 
3  3  5 

DATA

dt <- read.table(text = " Seq seconds 
1 1  1 
       2 1  2 
       3 1  3 
       4 1  4 
       5 2  1 
       6 2  2 
       7 3  1 
       8 3  2 
       9 3  3 
       10 3  4 
       11 3  5", 
       header = TRUE) 
1

使用选项data.table

library(data.table) 
setDT(df1)[, .(Time = max(seconds)), Seq] 
# Seq Time 
#1: 1 4 
#2: 2 2 
#3: 3 5 
相关问题