Q:

Combine separate Year and Month columns into single Date Column

I have a data frame (df) like this: 
    code     year  month
1 YYOOGG    2011    8
2 YYOOGG    2011    1
3 YYOOGG    2011    4
4 YYOOGG    2011    3
5 YYOOGG    2011    12
6 YYOOGG    2011    9

and I need to create a 4th column with the Date like this: 
    code     year  month  Date
1 YYOOGG    2011    8     2011-08
2 YYOOGG    2014    1     2014-01
3 YYOOGG    2016    4     2016-04
4 YYOOGG    2009    3     2009-03
5 YYOOGG    2000    12    2000-12
6 YYOOGG    2010    9     2010-09

I tried this: 
  df$Date <- as.Date(paste(df$year, df$month, sep="-"), "%Y-%M")

but I get the following as the date:
2011-09-09

A:

I'd use zoo::as.yearmon as follows
df$Date <- as.yearmon(paste(df$year, df$month), "%Y %m")

It will not look like the desired output (i.e. 2011-01).
However, IMO this approach is better than m0h3n's because df$Date will be saved as a yearmon object rather than a string.  Therefore you can be handled it like a date.  For example, if you save df$Date as a string you're going to have a hard time plotting your data over time, etc...

A:

A date typically contains a day, otherwise it's not actually a date.  For this reason, I'll create a character vector for the new column. Using only base R, you could use sprintf() to put the two columns together, adding a zero wherever necessary on the month column ...
within(df, Date <- sprintf("%d-%02d", year, month))
#     code year month    Date
# 1 YYOOGG 2011     8 2011-08
# 2 YYOOGG 2011     1 2011-01
# 3 YYOOGG 2011     4 2011-04
# 4 YYOOGG 2011     3 2011-03
# 5 YYOOGG 2011    12 2011-12
# 6 YYOOGG 2011     9 2011-09

Or
df$Date <- with(df, sprintf("%d-%02d", year, month))

