R проект: график данных - PullRequest
2 голосов
/ 03 апреля 2011
9059 2011-02-18                 2.81
9060 2011-02-21                 <NA>
9061 2011-02-22                 2.72
9062 2011-02-23                 2.75
9063 2011-02-24                 2.73
9064 2011-02-25                  2.7
9065 2011-02-28                 2.73
9066 2011-03-01                 2.75
9067 2011-03-02                 2.77
9068 2011-03-03                 2.79
9069 2011-03-04                 2.81
9070 2011-03-07                 2.81
9071 2011-03-08                 2.83
9072 2011-03-09                 2.78
9073 2011-03-10                 2.72
9074 2011-03-11                 2.76
9075 2011-03-14                 2.75
9076 2011-03-15                  2.7

Выше приведен фрагмент фрейма данных с именем «mydata».Имя первого столбца - V1, а второго - V2.Первый столбец содержит даты, которые были преобразованы с использованием функции as.Date ().

Я хочу построить это на сетке xy со столбцом-1 на оси x и столбцом-2 на оси y,Я безуспешно пробовал разные комбинации в течение нескольких часов.

Я пробовал

> plot(mydata[,1], mydata[,2])

Это приводит к зависанию консоли R, когда кажется, что она делает что-то бессмысленное.

Ответы [ 2 ]

1 голос
/ 03 апреля 2011

Я заставил его работать следующим образом:

> x2 <- read.zoo("2_yr_tsy_rate.txt", format="%m/%d/%Y", sep=",", na.strings="ND")
>
> x10 <- read.zoo("10_yr_tsy_rate.txt", format="%m/%d/%Y", sep=",", na.strings="ND")
>
> sprd <- x10 - x2
>
> plot(sprd)

это сработало ... но если я загружаю данные, используя read.csv, и пытаюсь изменить объект данных, это кошмар.

Теперь у меня другая проблема.Сюжет работает, но метка оси X указана в годах каждые 10 лет.Мои данные - это спред процентных ставок, начиная с 1976 года. Мне бы хотелось, чтобы метка оси X была ежеквартальной.Я пробовал разные вещи, включая следующее, но получил ошибки.

> plot(as.yearqtr(sprd), sprd, type='l')
Error in if (del == 0 && to == 0) return(to) : 
  missing value where TRUE/FALSE needed

Это вывод str (мой объект)

> str(sprd)
‘zoo’ series from 1976-06-01 to 2011-03-31
  Data: num [1:9088] 0.68 0.71 0.7 0.77 0.79 0.79 0.82 0.86 0.83 0.83 ...
  Index: Class 'Date'  num [1:9088] 2343 2344 2345 2346 2349 ...
> 
1 голос
/ 03 апреля 2011

Это работает для меня (хотя я не знаю, дает ли это желаемый результат?

usr <- textConnection("9059 2011-02-18                 2.81
9060 2011-02-21                 <NA>
9061 2011-02-22                 2.72
9062 2011-02-23                 2.75
9063 2011-02-24                 2.73
9064 2011-02-25                  2.7
9065 2011-02-28                 2.73
9066 2011-03-01                 2.75
9067 2011-03-02                 2.77
9068 2011-03-03                 2.79
9069 2011-03-04                 2.81
9070 2011-03-07                 2.81
9071 2011-03-08                 2.83
9072 2011-03-09                 2.78
9073 2011-03-10                 2.72
9074 2011-03-11                 2.76
9075 2011-03-14                 2.75
9076 2011-03-15                  2.7")

usr <- read.table(usr, header = FALSE)[-1] #remove the first column

with(usr, plot(V3 ~ V2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...