我有一个ts()对象:
ts()
ts(Df, start = c(2010, 7), end = c(2022, 11),frequency = 12)
但当我尝试查看时间窗口时,它显示如下:
time(Df_ts)
2010.500 2010.583 2010.667 2010.750 2010.833我期待它是:2010.7 2010.8 2010.9
nwo49xxi1#
不,它以.0开头,而不是.1.。是一年的十二分之一。一月有0/12,二月有1/12,等等。
.0
.1.
0/12
1/12
1/12 # [1] 0.08333333 ts(1:10, start = c(2010, 1), end=c(2011, 1), frequency=12) |> time() # Jan Feb Mar Apr May Jun # 2010 2010.000 2010.083 2010.167 2010.250 2010.333 2010.417 # 2011 2011.000 # Jul Aug Sep Oct Nov Dec # 2010 2010.500 2010.583 2010.667 2010.750 2010.833 2010.917 # 2011
这是同样的逻辑:
seq.int(2010, 2011, length.out=13) # [1] 2010.000 2010.083 2010.167 2010.250 2010.333 2010.417 # [7] 2010.500 2010.583 2010.667 2010.750 2010.833 2010.917 # [13] 2011.000
k3fezbri2#
原因是ts对象的frequency设置为12。这意味着ts对象中的时间戳以1 month的间隔均匀分布。例如,2010年1月1日的时间戳是2010.000,2010年2月1日的时间戳是2010.083。如果你想在ts对象中看到月数,你可以使用as.yearmon()函数。下面将ts对象转换为yearmon对象:
frequency
1 month
as.yearmon()
library(zoo) Df_ts_yearmon <- as.yearmon(Df.ts)
然后使用time()函数查看时间戳:
time()
time(Df_ts_yearmon[1:6])
2条答案
按热度按时间nwo49xxi1#
不,它以
.0
开头,而不是.1.
。是一年的十二分之一。一月有0/12
,二月有1/12
,等等。这是同样的逻辑:
k3fezbri2#
原因是ts对象的
frequency
设置为12。这意味着ts对象中的时间戳以1 month
的间隔均匀分布。例如,2010年1月1日的时间戳是2010.000,2010年2月1日的时间戳是2010.083。如果你想在ts对象中看到月数,你可以使用as.yearmon()
函数。下面将ts对象转换为yearmon对象:然后使用
time()
函数查看时间戳: