#### Create dataframe
my_basket = data.frame(ITEM_GROUP = c("Fruit","Fruit","Fruit","Fruit","Fruit","Vegetable","Vegetable","Vegetable","Vegetable"),
ITEM_NAME = c("Apple","Banana","Orange","Mango","Papaya","Carrot","Potato","Brinjal","Raddish"),
Price = c(100,80,80,90,65,70,60,70,25),
MRP = c(101,85,85,96,67,73,65,71,33))
my_basket
## ITEM_GROUP ITEM_NAME Price MRP
## 1 Fruit Apple 100 101
## 2 Fruit Banana 80 85
## 3 Fruit Orange 80 85
## 4 Fruit Mango 90 96
## 5 Fruit Papaya 65 67
## 6 Vegetable Carrot 70 73
## 7 Vegetable Potato 60 65
## 8 Vegetable Brinjal 70 71
## 9 Vegetable Raddish 25 33
library(dplyr)
##
## 载入程辑包:'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
My_data <- my_basket %>%
group_by(ITEM_GROUP) %>%
mutate(row_number_bygroup = 1:n())
My_data
## # A tibble: 9 x 5
## # Groups: ITEM_GROUP [2]
## ITEM_GROUP ITEM_NAME Price MRP row_number_bygroup
## <chr> <chr> <dbl> <dbl> <int>
## 1 Fruit Apple 100 101 1
## 2 Fruit Banana 80 85 2
## 3 Fruit Orange 80 85 3
## 4 Fruit Mango 90 96 4
## 5 Fruit Papaya 65 67 5
## 6 Vegetable Carrot 70 73 1
## 7 Vegetable Potato 60 65 2
## 8 Vegetable Brinjal 70 71 3
## 9 Vegetable Raddish 25 33 4
df <- data.frame(a = 1:2, b = letters[1:2])
df
## a b
## 1 1 a
## 2 2 b
df[rep(seq_len(nrow(df)), each = 2), ]
## a b
## 1 1 a
## 1.1 1 a
## 2 2 b
## 2.1 2 b
#ref https://www.datasciencemadesimple.com/generate-row-number-to-the-dataframe-in-r-2/
# https://stackoverflow.com/questions/11121385/repeat-rows-of-a-data-frame