2010-04-08 2 views

ответ

4

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

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

Большое спасибо. Я буду помнить эти обозначения в будущем. Я сделал менее элегантную работу. Мой конечный фрейм данных был результатом трех объединенных векторов, поэтому я просто перестроил порядок, в котором я их объединил. Оригинал: merge (V2, V1, V2) Работа: слияние (V1, V2, V3) – Milktrader

0

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

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

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

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

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