我有一個資料集,我試圖找到“2021-08-02”的壁櫥日期,而不是在它之前。因此,在下面的示例資料集中,我希望它過濾掉“2021-08-05”之前的所有內容,因為那是最近的日期,不會更早。
library(dplyr)
test <- tibble(Day = seq(as.Date("2021-08-01"), as.Date("2021-09-10"), by="4 days"),
Score = c(sample(1:15, 11)))
uj5u.com熱心網友回復:
獲取它們之間的絕對差,找到最小索引,并回傳序列
library(dplyr)
date <- as.Date('2021-08-02')
test %>%
slice(seq_len(which.min(abs(date - Day))))
-輸出
# A tibble: 1 × 2
Day Score
<date> <int>
1 2021-08-01 11
如果我們想回傳另一組行,要么%>% anti_join(df, .)在slice步驟之后使用,要么創建一個條件row_number()
test %>%
filter(row_number() > seq_len(which.min(abs(date - Day))))
# A tibble: 10 × 2
Day Score
<date> <int>
1 2021-08-05 9
2 2021-08-09 12
3 2021-08-13 13
4 2021-08-17 6
5 2021-08-21 4
6 2021-08-25 1
7 2021-08-29 10
8 2021-09-02 3
9 2021-09-06 7
10 2021-09-10 8
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/456809.html
