这个问题在这里已经有了答案:
Numbering rows within groups in a data frame
(9 个回答)
5年前关闭。
我有一个 df 喜欢
ProjectID Dist
1 x
1 y
2 z
2 x
2 h
3 k
.... ....
我想添加第三列,以便每个 ProjectID 都有一个递增计数器:
ProjectID Dist counter
1 x 1
1 y 2
2 z 1
2 x 2
2 h 3
1 k 3
.... ....
我查看了
seq
rank
和其他一些内容,特别想看看我是否可以使用 ddply
来提供帮助:df$counter <- ddply(df,.(projectID), function(x).....? )
我想我可以调整这个答案 How to create a counter/numeration by group? 但更喜欢使用类似 ddply 的东西(我找不到 cumsum 的等价物,但我认为这是相同的原则: Create ascending series of integers by group in Pandas )。这会让我在列表中索引出现(例如合并)。
最佳答案
一个 dplyr
解决方法很简单:
library(dplyr)
df %>% group_by(ProjectID) %>% mutate(counter = row_number(ProjectID))
# ProjectID Dist counter
#1 1 x 1
#2 1 y 2
#3 2 z 1
#4 2 x 2
#5 2 h 3
#6 1 k 3
关于r - 在 R 中按组向数据帧添加索引(或计数器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28647954/