2017-10-06 123 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 
相關問題