找到r中序列中的第一个和最后一个值

时间:2017-10-06 15:48:23

标签: 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

2 个答案:

答案 0 :(得分: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

数据

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 :(得分:1)

使用data.table

的选项
library(data.table)
setDT(df1)[, .(Time = max(seconds)), Seq]
#   Seq Time
#1:   1    4
#2:   2    2
#3:   3    5