我需要在不带 ts 对象的向量上使用函数。我正在尝试将其转换为普通的旧向量,但我似乎无法弄清楚。我四处搜索,但大多数人都试图将数据类型转换为 ts 对象。我想走另一条路。任何帮助,将不胜感激。
user308883
问问题
32355 次
1 回答
20
data(AirPassengers) # already in your R installation, via package "datasets"
AP = AirPassengers
class(AP)
# returns "ts"
AP1 = as.numeric(AP)
# returns "numeric"
# another way to do it
AP1 = unclass(AP)
AP1 是一个与 AP 具有相同 值和长度的向量。该类现在是数字而不是 ts,这在一定程度上意味着索引不再是某种日期时间对象,而只是普通的顺序整数。
因此,对于 OP 中的特定问题,以上两个片段中的任何一个都将“将 [a ts object] 转换为普通的旧向量”
如果您需要对索引做同样的事情,而不是对值做同样的事情——即,从 Date 对象到数字,您可以这样做:
fnx = function(num_days_since_origin, origin="1970-01-01") {
as.Date(num_days_since_origin, origin="1970-01-01")
}
a = as.Date("1985-06-11")
a2 = as.numeric(a)
# returns: 5640
a3 = fnx(5640)
# returns: "1985-06-11" (a date object)
于 2010-04-05T04:16:30.690 回答