此函數可以控製 R 中沒有特定排序參數的窗口函數的排序。當轉換為 SQL 時,它將修改 OVER 函數的 order 子句。
細節
此函數的工作原理是更改 call
以使用適當的參數調用 with_order()
。
例子
order_by(10:1, cumsum(1:10))
#> [1] 55 54 52 49 45 40 34 27 19 10
x <- 10:1
y <- 1:10
order_by(x, cumsum(y))
#> [1] 55 54 52 49 45 40 34 27 19 10
df <- data.frame(year = 2000:2005, value = (0:5) ^ 2)
scrambled <- df[sample(nrow(df)), ]
wrong <- mutate(scrambled, running = cumsum(value))
arrange(wrong, year)
#> year value running
#> 1 2000 0 0
#> 2 2001 1 39
#> 3 2002 4 4
#> 4 2003 9 38
#> 5 2004 16 55
#> 6 2005 25 29
right <- mutate(scrambled, running = order_by(year, cumsum(value)))
arrange(right, year)
#> year value running
#> 1 2000 0 0
#> 2 2001 1 1
#> 3 2002 4 5
#> 4 2003 9 14
#> 5 2004 16 30
#> 6 2005 25 55
相關用法
- 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 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 按選擇的變量進行分組
- R dplyr bind_cols 按列綁定多個 DataFrame
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 A helper function for ordering window function output。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。