Mr. Buster
Mr. Buster

Reputation: 131

R: How to create multiple sequential months

I need to create a data frame with three columns named Store, Product and Month. How can I create sequential months that run from 1/1/2010 to 12/1/2010. And then combine it to every combination of Store and Product.

The first column is Store:

Store <- c("Chain1", "Chain2")

The second column is ´Product`:

Product <- c("ABC", "DEF", "GHI")

And the third column should be sequential months. So every combination of Store and Product should have a specific month.

My desired result should be like this one.

Store   Product Month
Chain1  ABC     1/1/2010
Chain1  ABC     2/1/2010
Chain1  ABC     3/1/2010
Chain1  ABC     4/1/2010
Chain1  ABC     5/1/2010
Chain1  ABC     6/1/2010
Chain1  ABC     7/1/2010
Chain1  ABC     8/1/2010
Chain1  ABC     9/1/2010
Chain1  ABC     10/1/2010
Chain1  ABC     11/1/2010
Chain1  ABC     12/1/2010
Chain1  DEF     1/1/2010
Chain1  DEF     2/1/2010
Chain1  DEF     3/1/2010
Chain1  DEF     4/1/2010
Chain1  DEF     5/1/2010
Chain1  DEF     6/1/2010
Chain1  DEF     7/1/2010
Chain1  DEF     8/1/2010
Chain1  DEF     9/1/2010
Chain1  DEF     10/1/2010
Chain1  DEF     11/1/2010
Chain1  DEF     12/1/2010
Chain1  GHI     1/1/2010
Chain1  GHI     2/1/2010
Chain1  GHI     3/1/2010
Chain1  GHI     4/1/2010
Chain1  GHI     5/1/2010
Chain1  GHI     6/1/2010
Chain1  GHI     7/1/2010
Chain1  GHI     8/1/2010
Chain1  GHI     9/1/2010
Chain1  GHI     10/1/2010
Chain1  GHI     11/1/2010
Chain1  GHI     12/1/2010
Chain2  ABC     1/1/2010
Chain2  ABC     2/1/2010
Chain2  ABC     3/1/2010
Chain2  ABC     4/1/2010
Chain2  ABC     5/1/2010
Chain2  ABC     6/1/2010
Chain2  ABC     7/1/2010
Chain2  ABC     8/1/2010
Chain2  ABC     9/1/2010
Chain2  ABC     10/1/2010
Chain2  ABC     11/1/2010
Chain2  ABC     12/1/2010
Chain2  DEF     1/1/2010
Chain2  DEF     2/1/2010
Chain2  DEF     3/1/2010
Chain2  DEF     4/1/2010
Chain2  DEF     5/1/2010
Chain2  DEF     6/1/2010
Chain2  DEF     7/1/2010
Chain2  DEF     8/1/2010
Chain2  DEF     9/1/2010
Chain2  DEF     10/1/2010
Chain2  DEF     11/1/2010
Chain2  DEF     12/1/2010
Chain2  GHI     1/1/2010
Chain2  GHI     2/1/2010
Chain2  GHI     3/1/2010
Chain2  GHI     4/1/2010
Chain2  GHI     5/1/2010
Chain2  GHI     6/1/2010
Chain2  GHI     7/1/2010
Chain2  GHI     8/1/2010
Chain2  GHI     9/1/2010
Chain2  GHI     10/1/2010
Chain2  GHI     11/1/2010
Chain2  GHI     12/1/2010

Upvotes: 1

Views: 38

Answers (1)

Cettt
Cettt

Reputation: 11981

you can use the expand.grid function:

Month <- format(seq.Date(from = as.Date("2010-01-01"), by = "m", length.out = 12), "%d/%m/%Y")

expand.grid(Store = Store, Product = Product, Month = Month, stringsAsFactors = F)

Upvotes: 3

Related Questions