簡體   English   中英

使用dplyr在組內的累計計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM