Como você reorganiza a ordem vetorial em r?
Pergunta
Eu tenho três vetores em um objeto XTS R. Chame -os de v1, v2, v3. Após a fusão, a ordem deles para a direita é v2, v3, v1. Como faço para reorganizá-los para que eles leiam (da esquerda para a direita) como v1, v2, v3?
Solução
Você pode simplesmente fazer referência às colunas e assinar novamente:
x <- x[,c(2,3,1)]
Aqui está um exemplo de funcionamento:
> data(sample_matrix)
> x <- head(as.xts(sample_matrix, descr='my new xts object'))[,c(1,2,3)]
> x
Open High Low
2007-01-02 50.03978 50.11778 49.95041
2007-01-03 50.23050 50.42188 50.23050
2007-01-04 50.42096 50.42096 50.26414
2007-01-05 50.37347 50.37347 50.22103
2007-01-06 50.24433 50.24433 50.11121
2007-01-07 50.13211 50.21561 49.99185
> x <- x[,c(2,3,1)]
> x
High Low Open
2007-01-02 50.11778 49.95041 50.03978
2007-01-03 50.42188 50.23050 50.23050
2007-01-04 50.42096 50.26414 50.42096
2007-01-05 50.37347 50.22103 50.37347
2007-01-06 50.24433 50.11121 50.24433
2007-01-07 50.21561 49.99185 50.13211
Outras dicas
Vale a pena notar que enquanto você são capaz de fazer referência às colunas por nome para gerar novos objetos e colunas, ala
xts.object$V1plusV2 <- xts.object[, "V1"] + xts.object[, V2"] ,
Você não pode reordenar as colunas via nome. O seguinte não é permitido
xts.reordered <- xts.object[, c("V3, V2, V1")] .
Em vez disso, como Shane apontou, você precisaria fazer referência às colunas por número.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow