R:如何在数据框中创建一个新列,其中主要计算观察值对变量具有相同值的次数

R: how to create a new column in a dataframe where is cardinally counted how many times an observation has the same value for a variable

我有一个超过 15,000 行的 R 数据框,如下所示:

+------------------------------------+-------+
|  Authors                           | IDs   |
+------------------------------------+-------+
|  Abad J., Cabrera H.R., Medina A.  | 16400 |
|  Abad J., Cabrera H.R., Medina A.  | 70058 |
|  Abad J., Cabrera H.R., Medina A.  | 71030 |
|  A Banuls V., Salmeron J.L.        | 57196 |
|  A Banuls V., Salmeron J.L.        | 56372 |
+------------------------------------+-------+

我要获取的是以下新栏目:

+------------------------------------+-------+-------+
|  Authors                           | IDs   |Order  |
+------------------------------------+-------+-------+
|  Abad J., Cabrera H.R., Medina A.  | 16400 |   1   |
|  Abad J., Cabrera H.R., Medina A.  | 70058 |   2   |
|  Abad J., Cabrera H.R., Medina A.  | 71030 |   3   |
|  A Banuls V., Salmeron J.L.        | 57196 |   1   | 
|  A Banuls V., Salmeron J.L.        | 56372 |   2   |
+------------------------------------+-------+-------+

基本上我想要一个新列,其中计算具有相同作者的观察的数量。

猜对了吗?

我们可以通过 'Authors' 进行分组并得到 row_number()

library(dplyr)
df1 %>%
  group_by(Authors)%>%
  mutate(order = row_number())

ave

df1$order <- with(df1, ave(seq_along(Authors), Authors, FUN = seq_along))

或者如果 'Authors' 按字母顺序排列

df1$order <- sequence(table(df1$Authors))