Нарезка первой строки кадра данных и дополнительной строки, содержащей дату - PullRequest
0 голосов
/ 03 мая 2018

Я хотел бы взять первую строку кадра данных (который будет меняться еженедельно), а также строку, содержащую контрольную дату (которая является константой), чтобы выполнить математическую операцию над ними.

Я могу использовать dplyr::slice(), чтобы получить первую строку, но есть идеи, как также вернуть дополнительную строку в том же вызове?

library(dplyr)

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


slice(df, 1)

В идеале, я получу две строки обратно в качестве кадра данных. Первая строка и строка, указанная по дате.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Мы можем использовать slice, объединяя индекс строки для первой строки ('1') с индексом строки, полученным путем match извлечения значения '65' из столбца 'x'

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
0 голосов
/ 03 мая 2018

Я бы использовал dplyr::filter, потому что он позволяет вам предоставлять несколько условий, используя оператор ИЛИ. Затем мы можем выполнить фильтрацию на основе требуемых критериев или на основе определенного номера строки (сгенерированного функцией 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...