R: как создать новый столбец в кадре данных, где кардинально подсчитано, сколько раз наблюдение имеет одинаковое значение для переменной - PullRequest
1 голос
/ 22 января 2020

У меня есть R-фрейм данных из более чем 15 000 строк, таких как следующий:

+------------------------------------+-------+
|  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   |
+------------------------------------+-------+-------+

По сути, я хочу новый столбец, где подсчитывается количество наблюдений с одинаковыми авторами.

Есть предположения?

1 Ответ

2 голосов
/ 22 января 2020

Мы можем сделать группу по «Авторам» и получить 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))

Или если «Авторы» расположены в алфавитном порядке

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