Формат даты временных рядов от ДД: мм: гг ЧЧ: мм: сс до ДД: мм: гг в R

#r #plot #time-series #dynamic-chart-series

#r #график #временные ряды #динамический ряд диаграмм

Вопрос:

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

DATASET :

      Date   IIP   CPI Term.Spread RealMoney    NSE50 CallMoneyRate
1 2013:01:00 107.2 104.6   -0.059420  81740.83 6023.117      8.001140
2 2013:02:00 101.4 105.3    0.119139  83898.19 5893.587      7.804981
3 2013:03:00 115.2 105.5    0.110670  85029.03 5782.261      7.899530
4 2013:04:00 102.6 106.1    0.262090  86276.79 5699.760      7.525810
5 2013:05:00 106.0 106.9    0.189202  87405.71 6064.522      7.291098
6 2013:06:00 101.3 109.3    0.220076  87329.72 5782.078      7.240324
#------> importing all libraries

library("lubridate")
# install.packages("forecast")
# install.packages("ggplot2")
library('ggplot2')
library('fpp')
library('forecast')
library('tseries')
# install.packages("vars")
library(xts)


#--------->reading data
inputData <- read.csv("C:/Users/sanat/Downloads/exercise_1.csv",         header=T)
inputData$logIIP <- log(inputData$IIP)
head(inputData)

inputData$logCPI <- log(inputData$CPI)
head(inputData)
inputData$CPI <- NULL
inputData$IIP <- NULL
head(inputData)
inputDate <- ts(start = 2013, end = 2018, frequency = 365)


#inputData$Date <- as.Date(class(inputData$Date), format = "%Y-%m")
#head(inputData)
  

Область сомнений (выходные данные дают значения NA)

 strptime(inputData$Date, format = "%m-%Y")
  

Мои входные данные $ Date выдают NA в качестве выходных данных. Как я должен обрабатывать формат ДД-мм-гг чч: мм: сс. Я новичок в R. Пожалуйста, проведите меня через.

Комментарии:

1. Можете ли вы показать, как выглядят некоторые значения даты? inputData$Date[1:10]

2. Привет, я добавил свой набор данных. Кроме того,> Входные данные $ Дата[1:10] [1] 2013:01:00 2013:02:00 2013:03:00 2013:04:00 2013:05:00 2013:06:00 [7] 2013:07:00 2013:08:00 2013:09:00 2013:10:00 67 Уровни: 2013:01:00 2013:02:00 2013:03:00 2013:04:00 … 2018:07:00

3. Я немного смущен тем, что должны были означать эти значения. Это был год: месяц? Какое время соответствует 2013:01:00? Кроме того, вы, вероятно, захотите рассматривать его как символ, а не как фактор для начала.

4. это данные за месяц, январь 2013

5. Я предлагаю вам использовать dput(inputData) и опубликовать выходные данные в вопросе.

Ответ №1:

Ошибка в том, что дата не может иметь значения 0 , она находится в 1-31 диапазоне. Чтобы справиться с проблемой, вам нужно изменить last 0 на 1 , например, с помощью stringr package. Затем с помощью lubridate пакета вы можете преобразовать его в Date формат. Пожалуйста, смотрите ниже:

 # data simulation
Date <- expand.grid(2013:2018, c(paste0("0", 1:9), 10, 11, 12))
inputData <- data.frame(Date = sort(paste0(Date$Var1, ":", Date$Var2, ":", "00")))


# conversion
library(lubridate)
library(stringr)

str_sub(inputData$Date, -1, -1) <- "1"
inputData$Date <- ymd(inputData$Date)


str(inputData)
# 'data.frame': 72 obs. of  1 variable:
#   $ Date: Date, format: "2013-01-01" "2013-02-01" ...