Hello, Yet another way, with package lubridate. When creating the "Date" objects, I set day = 1 to compare to TRUE below.
library(lubridate) start <- as.Date(ISOdate(1861, 1, 1)) end <- as.Date(ISOdate(2005, 12, 1)) start + months(4139 - 2400) #[1] "2005-12-01" end == start + months(4139 - 2400) #[1] TRUE The argument to function months can be a vector of integers. start + months(1:(4139 - 2400)) Then extract the months. month(start) month(end) month(start + months(<value>)) month(start + months(4139 - 2400)) Hope this helps, Rui Barradas Às 23:26 de 14/07/20, Miluji Sb escreveu:
Dear all, I have a panel dataset with a large number of groups (200K+) with a sequence representing the month of the observations (2400 - 4139). The data is from January 1861 to December 2005. My goal is to extract the corresponding month and year for each observation. I tried the following; x$dt <- seq(from=as.Date("1861-01-01"),by='1 month',length=209000) However, the end date is clearly out of the range. I would like to convert the month number (2400 - 4139) to January 1861 to December 2005 by ID. How can I achieve this? Any help will be highly appreciated. Best, Milu [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.