[R] How to combine character month and year columns into one column

Kuma Raj pollaroid at gmail.com
Tue Sep 23 19:04:57 CEST 2014


Many thanks for your quick answer which has created what I wished. May
I ask followup question on the same issue. I failed to convert the new
column into date format with this code. The class of MonthDay is still
character

df$MonthDay <- format(df$MonthDay, format=c("%b %Y"))
I would appreciate if you could suggest a working solution
Thanks


On 23 September 2014 18:03, Marc Schwartz <marc_schwartz at me.com> wrote:
> On Sep 23, 2014, at 10:41 AM, Kuma Raj <pollaroid at gmail.com> wrote:
>
>> Dear R users,
>>
>> I have a data with  month and year columns which are both characters
>> and wanted to create a new column like Jan-1999
>> with the following code. The result is all NA for the month part. What
>> is wrong with the and what is the right way to combine the two?
>>
>> ddf$MonthDay <- paste(month.abb[ddf$month], ddf$Year, sep="-" )
>>
>>
>> Thanks
>>
>>> dput(ddf)
>> structure(list(month = c("01", "02", "03", "04", "05", "06",
>> "07", "08", "09", "10", "11", "12"), Year = c("1999", "1999",
>> "1999", "1999", "1999", "1999", "1999", "1999", "1999", "1999",
>> "1999", "1999"), views = c(42, 49, 44, 38, 37, 35, 38, 39, 38,
>> 39, 38, 46), MonthDay = c("NA-1999", "NA-1999", "NA-1999", "NA-1999",
>> "NA-1999", "NA-1999", "NA-1999", "NA-1999", "NA-1999", "NA-1999",
>> "NA-1999", "NA-1999")), .Names = c("month", "Year", "views",
>> "MonthDay"), row.names = 109:120, class = "data.frame")
>>>
>>
>
>
>
> Since you are trying to use ddf$month as an index into month.abb, you will either need to coerce ddf$month to numeric in your code, or adjust how the data frame is created.
>
> In the case of the former approach:
>
>> paste(month.abb[as.numeric(ddf$month)], ddf$Year, sep="-" )
>  [1] "Jan-1999" "Feb-1999" "Mar-1999" "Apr-1999" "May-1999" "Jun-1999"
>  [7] "Jul-1999" "Aug-1999" "Sep-1999" "Oct-1999" "Nov-1999" "Dec-1999"
>
>
> Regards,
>
> Marc Schwartz
>



More information about the R-help mailing list