Как вы перерабатываете вектор порядок в R?
Вопрос
У меня есть три векторы в возрасте 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")] .
Вместо этого, как указал Шейн, вам нужно будет ссылаться на столбцы по номеру.
Не связан с StackOverflow