r - 在 R 中按组向数据帧添加索引(或计数器)

标签 r indexing counter plyr seq

这个问题在这里已经有了答案:





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/

相关文章:

mysql - Rails/Indexes 性能 问 - 哪个更快?

java - 计算山谷

r - 在R中处理网络数据

r - "Hmisc"软件包或 namespace 无法加载-没有名为'latticeExtra'的软件包

MySQL嵌套集合子类计算慢

indexing - eGit 添加到索引行为

Python Pandas NLTK 带有 Groupby 的数据框列中标记化单词的频率分布

ios - 在 iOS swift 中创建一个保存在 Parse 中的计数器

r - 按年份过滤等于或小于阈值

r - 深入研究R分析信息