2012-05-01 12 views
0

Я пытаюсь построить функцию шага с помощью stepfun. Это требует, чтобы вектор, задающий высоту значений функции между значениями x, был длиннее, чем x. Однако из-за этого требования я не могу построить значение, соответствующее последней категории в моих данных.как построить значение с использованием plot.stepfun, когда y не длиннее x

высот определяются:

beta_dec=c(.0453196,-.0254566,-.0156608,-.0015202,-.0026819) 

рент- ценностей

temp=seq(8,20,by=3) 

Я получаю сообщение об ошибке, когда я запускаю следующий говоря

graph<-stepfun(temp,beta_dec,f=0) 

«Ошибка в stepfun (temp, beta_dec, f = 0): 'y' должен быть длиннее, чем 'x' "

Если я завершаю последовательность в 17, она работает нормально, но значение, соответствующее 20, не отображается на графике?

+0

Спасибо, но я был в состоянии разобраться! – Ridhima

+2

возможно, тогда вы сможете опубликовать свой ответ или принять тот, который помог вам (или удалить вопрос), чтобы указать, что вы больше не ожидаете ответа. – Gregor

ответ

3

Этого достаточно?

plot(beta_dec ~ temp, type = "s") 

The type = "s" определяется в ?plot.default и средства по лестнице или шаги. Выше вызов дает:

type = "s"

+0

Большое спасибо Гэвин. Это работает и очень полезно знать! – Ridhima

4

Причина, почему stepfun потребности у один больше, чем х, потому что если у вас есть х узлов, то вам нужно х + 1 значения для полного определения функции. Итак, если ваши узлы составляют 1,2,3, тогда вам нужно иметь значения для до 1, между 1 и 2, между 2 и 3, а после 3 - до 4 значений. В принципе, вам нужно выяснить, какова ценность вашей функции до 8. Например, вы можете сделать:

# Notice I added a value in front of beta_dec. You should add the real value. 
beta_dec=c(.0453196,.0453196,-.0254566,-.0156608,-.0015202,-.0026819) 
temp=seq(8,20,by=3) 
graph<-stepfun(temp,beta_dec,f=0) 
plot(graph) 
+1

Большое спасибо за то, что вы меня поняли, почему это требование необходимо. Однако я не знаю значения до 8 и не могу этого знать. Таким образом, существует какой-то способ этого? Могу ли я начать график с 8? – Ridhima