Временной ряд (xts) strptime; ТОЛЬКО месяц и день
Я пытался сделать временной ряд на моем фрейме данных, и мне нужно убрать время из моего CSV. Вот что у меня есть:
campbell <-read.csv("campbell.csv")
campbell$date = strptime(campbell$date, "%m/%d")
campbell.ts <- xts(campbell[,-1],order.by=campbell[,1])
Первое, что я пытаюсь сделать, это просто заставить xts обрезать даты как "xx/xx", означая только месяц и день. У меня нет года для моих данных. Когда я пробую вторую строку кода и вызываю столбец даты, он преобразует его в "2013-xx-xx". У этих месяцев и дней нет года, связанного с ними, и я не могу понять, как избавиться от 2013 года. (Файл CSV, к которому я обращаюсь, имеет даты в формате "9/30,10/1...так далее.)
Во-вторых, когда я пытаюсь составить временной ряд (третья строка), я не уверен, что вызывает команда "order.by". Что я индексирую?
Любая помощь??
Спасибо!
2 ответа
За strptime
Вам необходимо указать полную дату, т.е. день, месяц и год. В случае, если ни один из них не предоставлен, текущие считаются из системного времени и добавляются к неполной дате. Итак, если вы хотите сохранить формат даты в том виде, в каком вы ее прочитали, сначала сделайте копию этого и сохраните во временной переменной, а затем используйте strptime
над campbell$date
преобразовать в R
читаемый формат даты. Поскольку год вас не беспокоит, вам не нужно беспокоиться об этом, даже если он автоматически добавляется strptime
,
campbell <-read.csv("campbell.csv")
date <- campbell$date
campbell$date <- strptime(campbell$date, "%m/%d")
Во-вторых, что вы делаете "третьей линией" (xts(campbell[,-1],order.by=campbell[,1])
) команда, вы говорите, чтобы заказать все данные campbell
кроме первого столбца (campbell[,-1]
) в соответствии с индексом, предоставленным данными времени в первом столбце campbell
(campbell[,1]
). Таким образом, это будет работать только с учетом даты в первом столбце.
После упорядочения данных по временным рядам вы можете заменить обратно campbell$date
колонка с date
чтобы вернуть формат даты, которую вы хотели (хотя здесь, сначала вы должны заказать date
также как показано ниже)
date <- xts(date, order.by=campbell[,1]) # assuming campbell$date is campbell[,1]
campbell.ts <- xts(campbell[,-1], order.by=campbell[,1])
campbell.ts <- cbind(date, campbell.ts)