Как вы переставляете векторный порядок в R? - PullRequest
4 голосов
/ 08 апреля 2010

У меня есть три вектора в объекте xts R.Назовите их V1, V2, V3.После слияния их порядок слева направо - V2, V3, V1.Как переставить их так, чтобы они читались (слева направо) как V1, V2, V3?

Ответы [ 2 ]

4 голосов
/ 08 апреля 2010

Вы можете просто ссылаться на столбцы и переназначать их:

 x <- x[,c(2,3,1)]

Вот рабочий пример:

> 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
0 голосов
/ 07 ноября 2017

Стоит отметить, что пока вы можете ссылаться на столбцы по имени для создания новых объектов и столбцов, ala

xts.object$V1plusV2 <- xts.object[, "V1"] + xts.object[, V2"] ,

Вы не можете изменить порядок столбцов по имени. Следующее запрещено

xts.reordered <- xts.object[, c("V3, V2, V1")] .

Вместо этого, как указал Шейн, вам нужно будет ссылаться на столбцы по номеру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...