查找向量中的 "previous" ( lag()
) 或 "next" ( lead()
) 值。對於比較當前值之前或之後的值很有用。
用法
lag(x, n = 1L, default = NULL, order_by = NULL, ...)
lead(x, n = 1L, default = NULL, order_by = NULL, ...)
參數
- x
-
一個向量
- n
-
長度為 1 的正整數,給出落後或領先的位置數
- default
-
在應用滯後或超前後,用於將
x
填充回其原始大小的值。默認值NULL
填充缺失值。如果提供,它必須是一個大小為 1 的向量,它將被轉換為x
的類型。 - order_by
-
一個可選的輔助向量,定義將滯後或超前應用到
x
時要使用的順序。如果提供,其大小必須與x
相同。 - ...
-
不曾用過。
例子
lag(1:5)
#> [1] NA 1 2 3 4
lead(1:5)
#> [1] 2 3 4 5 NA
x <- 1:5
tibble(behind = lag(x), x, ahead = lead(x))
#> # A tibble: 5 × 3
#> behind x ahead
#> <int> <int> <int>
#> 1 NA 1 2
#> 2 1 2 3
#> 3 2 3 4
#> 4 3 4 5
#> 5 4 5 NA
# If you want to look more rows behind or ahead, use `n`
lag(1:5, n = 1)
#> [1] NA 1 2 3 4
lag(1:5, n = 2)
#> [1] NA NA 1 2 3
lead(1:5, n = 1)
#> [1] 2 3 4 5 NA
lead(1:5, n = 2)
#> [1] 3 4 5 NA NA
# If you want to define a value to pad with, use `default`
lag(1:5)
#> [1] NA 1 2 3 4
lag(1:5, default = 0)
#> [1] 0 1 2 3 4
lead(1:5)
#> [1] 2 3 4 5 NA
lead(1:5, default = 6)
#> [1] 2 3 4 5 6
# If the data are not already ordered, use `order_by`
scrambled <- slice_sample(
tibble(year = 2000:2005, value = (0:5) ^ 2),
prop = 1
)
wrong <- mutate(scrambled, previous_year_value = lag(value))
arrange(wrong, year)
#> # A tibble: 6 × 3
#> year value previous_year_value
#> <int> <dbl> <dbl>
#> 1 2000 0 1
#> 2 2001 1 16
#> 3 2002 4 9
#> 4 2003 9 0
#> 5 2004 16 25
#> 6 2005 25 NA
right <- mutate(scrambled, previous_year_value = lag(value, order_by = year))
arrange(right, year)
#> # A tibble: 6 × 3
#> year value previous_year_value
#> <int> <dbl> <dbl>
#> 1 2000 0 NA
#> 2 2001 1 0
#> 3 2002 4 1
#> 4 2003 9 4
#> 5 2004 16 9
#> 6 2005 25 16
相關用法
- R dplyr group_trim 修剪分組結構
- R dplyr slice 使用行的位置對行進行子集化
- R dplyr copy_to 將本地數據幀複製到遠程src
- R dplyr sample_n 從表中采樣 n 行
- R dplyr consecutive_id 為連續組合生成唯一標識符
- R dplyr row_number 整數排名函數
- R dplyr band_members 樂隊成員
- R dplyr mutate-joins 變異連接
- R dplyr nth 從向量中提取第一個、最後一個或第 n 個值
- R dplyr coalesce 找到第一個非缺失元素
- R dplyr group_split 按組分割 DataFrame
- R dplyr mutate 創建、修改和刪除列
- R dplyr order_by 用於排序窗口函數輸出的輔助函數
- R dplyr context 有關“當前”組或變量的信息
- R dplyr percent_rank 比例排名函數
- R dplyr recode 重新編碼值
- R dplyr starwars 星球大戰人物
- R dplyr desc 降序
- R dplyr between 檢測值落在指定範圍內的位置
- R dplyr cumall 任何、全部和平均值的累積版本
- R dplyr group_map 對每個組應用一個函數
- R dplyr do 做任何事情
- R dplyr nest_join 嵌套連接
- R dplyr pull 提取單列
- R dplyr group_by_all 按選擇的變量進行分組
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Compute lagged or leading values。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。