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"))
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?
Desired output:
| 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|
Try the following:
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())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With