我在 R 中有一個包含兩列的資料框,我想創建第三列,它將在兩列中滾動 2 并檢查是否滿足條件,如下表所述。條件是滾動的 ifelse,如下所示:
如果 -A1<B3<A1 為真 否則為假
如果 -A2<B4<A2 為真 否則為假
如果 -A3<B5<A3 為真 否則為假
如果 -A4<B6<A4 為真 否則為假
| 一種 | 乙 | 查看 |
|---|---|---|
| 1 | 4 | 不適用 |
| 2 | 5 | 不適用 |
| 3 | 6 | 錯誤的 |
| 4 | 1 | 真的 |
| 5 | -4 | 錯誤的 |
| 6 | 1 | 真的 |
我怎樣才能在 R 中做到這一點?是否有基本 R 的功能或在 dplyr 框架內?
uj5u.com熱心網友回復:
由于 R 是矢量化的,因此您可以使用一個命令來執行此操作,例如dplyr::lag:
library(dplyr)
df %>%
mutate(CHECK = -lag(A, n=2) < B & lag(A, n=2) > B)
A B CHECK
1 1 4 NA
2 2 5 NA
3 3 6 FALSE
4 4 1 TRUE
5 5 -4 FALSE
6 6 1 TRUE
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431703.html
