How do you arrange a vector order in R?

I have three vectors in an xts R. object. Name them V1, V2, V3. After the merger, their order from left to right is V2, V3, V1. How to remake them so that they read (from left to right) like V1, V2, V3?

+4
source share
2 answers

You can simply reference the columns and reassign them:

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

Here is a working example:

 > 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 
+4
source

It’s worth noting that, although you can reference columns by name to generate new objects and columns, ala

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

You cannot reorder columns by name. The following are not allowed:

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

Instead, as Shane pointed out, you will need to reference the columns by number.

0
source

Source: https://habr.com/ru/post/1306321/


All Articles