2011-02-24 15 views
0

私はタイムセリフを持っていますが、etsを適用するとエラーが発生し、どこで生成されるのかわかりません。私のタイムシェアはそれほど大きくないか、それほど大きな価値はありません。ets()error in R

何か間違っていますか?

> ts 
     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
2005  22.84 21.58 21.93 25.25 28.69 30.63 34.47 28.72 36.49 34.77 40.65 
2006 36.73 31.55 38.07 34.77 36.91 39.16 36.07 35.37 39.34 35.62 27.58 33.37 
2007 37.11 33.32 34.09 34.64 21.05 41.60 36.52 37.63 42.66 38.17 39.26 39.95 
2008 35.33 38.63 38.04 36.90 33.56 35.14 33.82 36.18 29.30 25.65 20.71 21.63 
2009 17.12 19.02 22.48 24.42 16.94 19.75 24.56 22.55 16.68 17.86 20.83 18.41 
2010 14.74 16.49 19.75 22.88 24.11 27.02 27.46 26.47 26.81 26.59 23.56 18.88 

> fit = ets (ts) 
Error in `-.default`(y, e$e) : non-numeric argument to binary operator 
In addition: Warning message: 
In ets(ts) : 
    Very large numbers which may cause numerical problems. Try scaling the data first 
> 

ありがとうございます。トレースバックと

更新:

Traceback: 
7: NextMethod(.Generic) 
6: Ops.ts(y, e$e) 
5: etsmodel(y, errortype[i], trendtype[j], seasontype[k], damped[l], 
     alpha, beta, gamma, phi, lower = lower, upper = upper, opt.crit = opt.crit, 
     nmse = nmse, bounds = bounds) 
4: ets(ts) 
3: eval(expr, envir, enclos) 
2: eval(i, envir) 
1: sys.source(file = "1.R", envir = .rAenv) 

答えて

0

私のTS変数が間違ってフォーマットしたことが表示されます。

mode(ts) // should be "numerical" not "character" 

as.numericで鋳造した後、それは働いた。

+0

最初に変数を作成するために使用しなければならない関数 'ts()'が既に存在するので、変数名として 'ts'を使用しないことをお勧めします。これは最終的には衝突に結びつくことになる。 –

+0

あなたは正しいです。ありがとう –