[英]Cumulative count within group using dplyr
我正在嘗試創建一個包含另一列的累積計數的列。
我的資料:
df <- data.frame(brand = c("A","B","C","A","A","B","A","A","B","C"))
這是我的預期輸出:
|Brand | Count |
|:-----|--------:|
|A | 1|
|B | 1|
|C | 1|
|A | 2|
|A | 3|
|B | 2|
|A | 4|
|A | 5|
|B | 3|
|C | 2|
我嘗試過cumsum,但不接受字符串或因素:
df %>%
group_by(Brand) %>%
mutate(Count = cumsum(Brand))
編輯:對於加分點,如果解決方案也可以在數據庫表上使用(SQL Server),那將是很好的
我們可以使用rowid
為“ brand”的列來創建
library(dplyr)
library(data.table)
df %>%
mutate(Count = rowid(brand))
或者按“品牌”分組后使用row_number
df %>%
group_by(brand) %>%
mutate(Count = row_number())
或使用data.table
library(data.table)
setDT(df)[, Count := rowid(brand)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.