我想将一年中的年份(或创建一个新的)转换为m / d / y。最初我把年份和年份作为两个单独的列,但我将它们连接在一起(粘贴),因为我认为由于闰年,我需要将年份包含在一年中。我不反对使用date
等其他软件包。
这是我的数据:
dat <- structure(list(doy = c(320, 350, 309, 310, 328, 321, 301, 338,
304, 304, 308), year = structure(1:11, .Label = c("2000", "2001",
"2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009",
"2010"), class = "factor"), conc = c("2000-320", "2001-350",
"2002-309", "2003-310", "2004-328", "2005-321", "2006-301", "2007-338",
"2008-304", "2009-304", "2010-308")), row.names = c(NA, -11L), class = "data.frame", .Names = c("doy",
"year", "conc"))
看起来像:
doy year conc
1 320 2000 2000-320
2 350 2001 2001-350
3 309 2002 2002-309
4 310 2003 2003-310
5 328 2004 2004-328
6 321 2005 2005-321
7 301 2006 2006-301
8 338 2007 2007-338
9 304 2008 2008-304
10 304 2009 2009-304
11 308 2010 2010-308
-cherrytree
答案 0 :(得分:4)
无需额外的套餐:
within(dat, dtime <- as.POSIXct(conc, format='%Y-%j'))
答案 1 :(得分:0)
像这样的东西。
as.Date( paste(as.character(dat$year), "-01-01",sep="")) + dat$doy - 1
只需将年中的一天(减一)添加到一年的1月1日。