-2
WkD <- unique(MILKORDERS$WeekDay)
Wk <- unique(MILKORDERS$Week)
ctwkd <- length(unique(MILKORDERS$WeekDay))
ctwk <- length(unique(MILKORDERS$Week))

MILKORDERS$Wednesday_1[MILKORDERS$WeekDay=='Wednesday' & MILKORDERS$Week==1] <- 1
MILKORDERS$Wednesday_2[MILKORDERS$WeekDay=='Wednesday' & MILKORDERS$Week==2] <- 1
MILKORDERS$Wednesday_3[MILKORDERS$WeekDay=='Wednesday' & MILKORDERS$Week==3] <- 1
MILKORDERS$Wednesday_4[MILKORDERS$WeekDay=='Wednesday' & MILKORDERS$Week==4] <- 1

MILKORDERS$Thursday_1[MILKORDERS$WeekDay=='Thursday' & MILKORDERS$Week==1] <- 1
MILKORDERS$Thursday_2[MILKORDERS$WeekDay=='Thursday' & MILKORDERS$Week==2] <- 1
MILKORDERS$Thursday_3[MILKORDERS$WeekDay=='Thursday' & MILKORDERS$Week==3] <- 1
MILKORDERS$Thursday_4[MILKORDERS$WeekDay=='Thursday' & MILKORDERS$Week==4] <- 1

I would like to put the above in loop and would like to do for all days of the week.

  • 2
    Welcome to StackOverflow! Please read the info about [how to ask a good question](http://stackoverflow.com/help/how-to-ask) and how to give a [reproducible example](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610). This will make it much easier for others to help you. – Jaap Apr 29 '17 at 17:28

1 Answers1

0

We can do this with a nested loop

for(i in WkD ){
  for(j in Wk) {
     MILKORDERS[paste(i, j, sep="_")] <- as.integer(MILKORDERS$WeekDay == i &
                       MILKORDERS$Week == j)
       }
 }

data

set.seed(24)
MILKORDERS <- data.frame(WeekDay = sample(c("Wednesday",
    "Thursday", "Friday", "Saturday", "Sunday", "Tuesday", "Monday"),
          30, replace = TRUE), Week = sample(6, 30, replace=TRUE), 
         stringsAsFactors = FALSE)
WkD <- unique(MILKORDERS$WeekDay)
Wk <- unique(MILKORDERS$Week)
akrun
  • 874,273
  • 37
  • 540
  • 662