dplyr:在group_by中生成行号/行位置 [英] dplyr: Generate row number/row position in group_by
本文介绍了dplyr:在group_by中生成行号/行位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据集,我想按组生成行位置。例如
I have a dataset and I want to generate the row position by group. For example
library(data.table)
data<-data.table(Position=c(1,2,3,4,5,6,7,8,9,10),
Category=c("M","M","M","M","F","F","F","M","M","F"))
我按类别分组,并想按组创建作为行位置的列。像下面这样或带有data.table的东西
I group by the Category and want to create column that is the row position by group. Something like below or with data.table
dataByGroup %>% group_by(Category) %>% mutate(positionInCategory = 1:nrow(Category))
无法计算出该如何实现?
Unable to work out how to achieve this?
所需的输出:
| Position|Category | positionInCategory|
|--------:|:--------|------------------:|
| 1|M | 1|
| 2|M | 2|
| 3|M | 3|
| 4|M | 4|
| 5|F | 1|
| 6|F | 2|
| 7|F | 3|
| 8|M | 5|
| 9|M | 6|
| 10|F | 4|
推荐答案
尝试以下操作:
library(data.table)
library(dplyr)
data<-data.table(Position=c(1,2,3,4,5,6,7,8,9,10),
Category=c("M","M","M","M","F","F","F","M","M","F"))
cleanData <- data %>%
group_by(Category) %>%
mutate(positionInCategory = 1:n())
这篇关于dplyr:在group_by中生成行号/行位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文