#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" ...