【问题标题】:find first and last value within a sequence in r [duplicate]在r中的序列中查找第一个和最后一个值[重复]
【发布时间】:2018-03-18 11:33:01
【问题描述】:

我有一个序列,然后是每个序列中记录的时间。我试图找到与其相应序列记录的最大时间值。示例如下:

    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

【问题讨论】:

    标签: r


    【解决方案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)
    

    【讨论】:

      【解决方案2】:

      使用data.table的选项

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-09
        • 1970-01-01
        • 2010-10-06
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 2019-08-12
        相关资源
        最近更新 更多