2016-02-28 5 views
1

Я новый пользователь R. У меня есть ежедневный набор данных по этой ссылке dropbox. Мой код:Временные ряды в R

#plotting CLOSE 
plot.ts(datatest$CLOSE,ylab="Close") 

И это результат:

[Graph][2].

Проблема является xlab, я хотел бы показать DATE переменные, но, кажется, чтобы показать порядок CLOSE переменные. Я также пробую другие команды, такие как ggplot, xyplot и т. Д., Но они требуют преобразования в data.frame, и мне так сложно.

Я был бы благодарен за некоторые рекомендации относительно того, как получить DATE переменную в графе.

Большое вам спасибо.

+0

Да, я могу изменить его Excel. –

ответ

1

Что-то, как это будет делать:

# load data: 
theData = read.csv2(file = "sample.csv",header = TRUE, 
        stringsAsFactors = FALSE,sep = ",", 
        colClasses = c("character",rep("numeric",5)),dec=".") 

# We want to plot a custom x-axis, so stop the default 
# x-axis being drawn usign xaxt="n": 
plot(theData$CLOSE,type="l",xaxt="n") 

# Lets say you want to put a date label in 8 different locations: 
locations = floor(seq(from=1,to=nrow(theData),by=nrow(theData)/8)) 

# Now draw the x-axis on your plot like this: 
axis(side = 1, at = locations, labels=theData$DATE[locations],las=2) 

В выше, side=1 означает рисунок оси в нижней части. at=locations означает, что мы хотим показывать метки меток в местах, указанных в векторе местоположения, который мы создали ранее. labels=theData$DATE[locations] предоставляет этикетки, которые мы хотим разместить в местах, где мы помещаем этикетку. las=2 означает, что вы хотите повернуть метки тика. Попробуйте las=1, а также для другого вращения.

Однако эти даты являются своего рода долго, так что вы можете создать меньшие сроки, как это:

# Convert your long dates to smaller dates like YYYY-MM-DD, and stick 
# the results to the end of your data frame. 
theData = cbind(theData, 
       "FormattedDate"=as.Date(theData$DATE,"%A, %B %e, %Y")) 

# Replot and use your smaller dates. (ces.axis=0.8 makes 
# the font smaller) 
plot(theData$CLOSE,type="l",xaxt="n") 
axis(side = 1, at = locations, 
    labels=theData$FormattedDate[locations],las=1,cex.axis=0.8) 

Наконец, вы можете также использовать некоторые хорошие пакеты временных рядов, чтобы создать намного более хорошие участки легко:

install.packages("xts") 
library(xts) 
xtsData = xts(theData[,"OPEN"],order.by = theData[,"FormattedDate"]) 
plot.zoo(xtsData) 
# or 
plot.xts(xtsData) 

Left is with zoo. Right is with xts

+0

Большое вам спасибо. –

0

пытаются использовать

dataset$DATE<-.as.POSIXct(dataset$DATE) 
+0

Это сообщение R 'datatest $ DATE = as.POSIXct (datatest $ DATE) Ошибка в as.POSIXlt.character (as.character (x), ...): символьная строка не находится в стандартном недвусмысленном формате ' –

+0

Если я изменил формат коротких дат в файле csv, то как я добавлю переменную DATE в график временных рядов? –

0
dataset$DATE <- as.Date(dataset$DATE, format = "%A, %B %d, %Y") 
  • % A - длинный день недели
  • % B - Полное название месяца
  • % d - две даты цифры
  • % Y - четыре цифры года
Смежные вопросы