使用as.POSIXct转换日期

时间:2013-02-15 04:58:40

标签: r date

我想从1990年到2010年生成一个21年的向量。我使用as.POSIXct函数如下

time=as.POSIXct("1990-01-01", tz="GMT")+0:20*3600*(24*365)

我得到以下答案

 [1] "1990-01-01 GMT" "1991-01-01 GMT" "1992-01-01 GMT" "1992-12-31 GMT" "1993-12-31 GMT" "1994-12-31 GMT"
 [7] "1995-12-31 GMT" "1996-12-30 GMT" "1997-12-30 GMT" "1998-12-30 GMT" "1999-12-30 GMT" "2000-12-29 GMT"
[13] "2001-12-29 GMT" "2002-12-29 GMT" "2003-12-29 GMT" "2004-12-28 GMT" "2005-12-28 GMT" "2006-12-28 GMT"
[19] "2007-12-28 GMT" "2008-12-27 GMT" "2009-12-27 GMT"

根据需要于2009年而非2010年结束。

任何人都可以帮助,如果可能的话,如何在没有月份和日期的情况下生成年份,仅使用as.POSIXct函数的年份?

2 个答案:

答案 0 :(得分:2)

这是一个只需要您指定所需年份范围的解决方案:

time <- as.POSIXct(paste0(1990:2010, "-01-01"), tz = "GMT")

我假设你想要每年1月1日,而不是近似。

现在,如果您只想展示年份,您可以执行以下操作:

format(time, "%Y")
 #[1] "1990" "1991" "1992" "1993" "1994" "1995" "1996" "1997" "1998" "1999" "2000" "2001" "2002" "2003"
 #[15] "2004" "2005" "2006" "2007" "2008" "2009" "2010"

答案 1 :(得分:2)

试试这个:

ISOdate(1990:2010,1,1)