Pergunta

Preciso usar uma função em um vetor que não pegue um objeto TS. Estou tentando convertê -lo em um vetor antigo simples, mas não consigo descobrir. Eu pesquisei no Google, mas principalmente as pessoas estão tentando converter tipos de dados em objeto TS. Eu quero ir para o outro lado. Qualquer ajuda seria apreciada.

Foi útil?

Solução

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 é um vetor com o mesmo valores e comprimento como ap. A classe agora é numérica em vez de TS, o que significa que, em parte, os índices não são mais algum tipo de objeto de data de data, mas apenas números inteiros seqüenciais comuns.

Então, com a pergunta específica no OP, qualquer um dos dois trechos acima "converter [um objeto TS] em um vetor antigo simples"

Se você precisar fazer a mesma coisa com o índices Em vez de, ou além dos valores-, a partir de objetos de data para numérico, você pode fazer isso assim:

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top