当行名和列名失败时,如何从(每月)时间序列访问行和列名称(年和月)?

问题描述 投票:0回答:1

在每月时间序列(频率 = 12)中,R 自动打印出年份和月份,将它们排列成行名称和列名称。但无法通过

rownames
colnames
访问它们。如何访问它们?

使用

AirPassengers
时间序列:

     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1949 112 118 132 129 121 135 148 148 136 119 104 118
1950 115 126 141 135 125 149 170 170 158 133 114 140
1951 145 150 178 163 172 178 199 199 184 162 146 166
1952 171 180 193 181 183 218 230 242 209 191 172 194
1953 196 196 236 235 229 243 264 272 237 211 180 201

看来我们有年份的行名称:

1949, 1950, 1951, ...
和月份名称的列名称
Jan, Feb, Mar, ...

我想访问这些行和列名称值,但通常的预期函数会失败,可能是因为这是一个时间序列。

> rownames(AirPassengers)
NULL
> colnames(AirPassengers)
NULL
> names(AirPassengers)
NULL

我知道

time
函数适用于时间序列,但它返回相同的类似数据帧的格式。

> time(AirPassengers)
          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug      Sep      Oct      Nov      Dec
1949 1949.000 1949.083 1949.167 1949.250 1949.333 1949.417 1949.500 1949.583 1949.667 1949.750 1949.833 1949.917
1950 1950.000 1950.083 1950.167 1950.250 1950.333 1950.417 1950.500 1950.583 1950.667 1950.750 1950.833 1950.917
1951 1951.000 1951.083 1951.167 1951.250 1951.333 1951.417 1951.500 1951.583 1951.667 1951.750 1951.833 1951.917
1952 1952.000 1952.083 1952.167 1952.250 1952.333 1952.417 1952.500 1952.583 1952.667 1952.750 1952.833 1952.917
1953 1953.000 1953.083 1953.167 1953.250 1953.333 1953.417 1953.500 1953.583 1953.667 1953.750 1953.833 1953.917

> rownames(time(AirPassengers))
NULL
> colnames(time(AirPassengers))
NULL
> names(time(AirPassengers))
NULL

我确信我可以通过一些巧妙的编程将

1949.000
转换为
Jan 1949
,但我更愿意能够直接访问
AirPassengers[1]
的列名和行名。由于 R 以类似于行和列名称的方式打印它们...

是否有一个函数可以访问像时间序列的行和列名称一样显示的年份和月份值?

像这样:

1949, 1950, 1951, ...
Jan, Feb, Mar, Apr, ...

这种格式也可以接受:

Jan 1949, Feb 1949, ...

r time-series r-colnames r-rownames
1个回答
0
投票

"ts"
AirPassengers
这样的对象没有dimnames属性,但你可以获得年份

> unique(floor(time(AirPassengers)))
 [1] 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960

月份会自动

> month.abb
 [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
© www.soinside.com 2019 - 2024. All rights reserved.