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))
我有一个超过 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))