我需要在不带ts对象的向量上使用一个函数。我正在尝试将其转换为简单的旧矢量,但似乎无法弄清楚。我到处搜索,但大多数人都在尝试将数据类型转换为ts对象。我想走另一条路。任何帮助,将不胜感激。

最佳答案

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,这意味着,在某种程度上,索引不再是某种日期时间对象,而只是普通的顺序整数。

因此,w/r/t OP中的特定问题,上面的两个代码片段中的任何一个都会“将[ts对象]转换为简单的旧向量”

如果您需要对索引而不是值或除值之外做同样的事情(即,从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)

关于data-structures - 将ts(时间序列)对象转换为R中的向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2576876/

10-12 18:14