我想获取数据帧的第一行(将每周更改)以及包含引用日期(这是常量)的行,以便对它们执行数学运算。
我可以使用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指定的行。
答案 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