Как вы перерабатываете вектор порядок в R?

StackOverflow https://stackoverflow.com/questions/2597062

  •  25-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

 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

Другие советы

Стоит отметить, что пока вы являются возможность ссылаться на столбцы по имени, чтобы генерировать новые объекты и столбцы, ALA

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top