简单地理解,它是时间转换的一种格式,年代从1900年算起。
> as.POSIXlt("1900-01-02")$year
[1] 0
> as.POSIXlt("1901-01-02")$year
[1] 1
> as.POSIXlt("1899-01-02")$year
[1] -1
就是1900年抽取的数字是0,1901年抽取的是1,1899年抽取的是-1,为了表示你想要的年代,再加上1900。
所以
> as.POSIXlt("1900-01-02")$year+1900[1] 1900> as.POSIXlt("1901-01-02")$year+1900[1] 1901> as.POSIXlt("1899-01-02")$year+1900[1] 1899
你的测试写成
year <- function(x) as.POSIXlt(x)$year + 1900
year(economics$date)
就可以了!
P.S. 楼主也在看ggplot2 Elegant Graphics for Data Analysis这本书?