切片数据帧的第一行和包含日期的附加行

时间:2018-05-03 16:04:32

标签: r dplyr

我想获取数据帧的第一行(将每周更改)以及包含引用日期(这是常量)的行,以便对它们执行数学运算。

我可以使用dplyr::slice()来获取第一行但是有关如何在同一个调用中返回附加行的任何想法?

library(dplyr)

df <- data_frame(x = c(10, 45, 65, 10),
                 dt = as.POSIXct("2018-01-01", tz = "GMT"))


slice(df, 1)

理想情况下,我会将两行作为数据帧返回。第一行和由date指定的行。

2 个答案:

答案 0 :(得分:3)

我使用dplyr::filter因为它允许您使用OR语句提供多个条件。然后我们可以根据所需的标准或基于特定的行号(由dplyr::row_number()函数生成)进行过滤:

 df %>%
     filter(x == 65 | row_number() == 1)

# A tibble: 2 x 2
      x dt                 
  <dbl> <dttm>             
1    10 2018-01-01 00:00:00
2    65 2018-01-01 00:00:00

答案 1 :(得分:1)

我们可以通过将第一行('1')的行索引与slice来自'x'列的值'65'的行索引连接来使用match

df %>%
   slice(c(1, match(65, x)))
#    A tibble: 2 x 2
#     x dt                 
#  <dbl> <dttm>             
#1    10 2018-01-01 00:00:00
#2    65 2018-01-01 00:00:00