Как переименовать столбец в объекте TS - PullRequest
2 голосов
/ 16 апреля 2020

Я работаю с объектами класса t в R.

Есть ли код, который я могу использовать для изменения имен столбцов в объекте такого типа?

Для фрейма данных я бы используйте что-то вроде этого:

Shipper_City <- rename(Shipper_City,"ShipCity_Old" = "ShipCity")

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Используйте функцию 'colnames ()'

Вы хотите использовать colnames(), потому что вы имеете дело с матрицей в случае объекта ts:

colnames(data) <- c("ColName1", "ColName2")

Надеюсь, это поможет.

0 голосов
/ 16 апреля 2020

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

rename.ts <- function(ts, ...){
  if (inherits(ts, "mts")) {
    x <- list(...)
    old_names <- names(x)
    if (all(old_names %in% colnames(ts))) {
      id_old_names <- which(old_names %in% colnames(ts))
      colnames(ts)[id_old_names] <- unname(unlist(x)) 
    } else {
      stop("You must provide valid column names")
    }
  } else {
    stop("You must provide a mts object as argument")
  }
  ts
}
# Example
mts <- ts(data = mtcars, start = 2013, frequency = 4)
rename.ts(mts, "mpg" = "mpg2", "cyl" = "cyl2")
...