Ошибка 0, смешанная с отрицательными индексами

#r #tableau-api

#r #таблица-api

Вопрос:

Приведенный ниже код позволяет мне запускать r-код в tableau. Я использовал похожие версии с той же строкой .arg1[1: (l-.arg2[1])] для прогнозирования других переменных, но по какой-то причине этот фрагмент кода продолжает выдавать ошибку: «Ошибка в .arg1 [1: (l — .arg2[1])]: только 0 могут быть смешаны с отрицательными индексами». Я видел несколько сообщений об этой ошибке, в которых упоминается смешивание отрицательных индексов, но я не уверен, как это исправить. Я попытался создать переменную с именем endTrain<- l — .arg2[1] и использовать ее вместо этого, но я все равно получил ту же ошибку. В приведенном ниже коде .arg1 = data1, .arg2=20 и .arg3=data3. Любые советы будут высоко оценены.

Код:

 SCRIPT_REAL("library(forecast);
         library(scales);
l<-length(.arg1);

##Training data
TTT_Train<-.arg1[1:(l-.arg2[1])];

##Squishing Training Data
sq_TTT_Train<-squish(TTT_Train,c(0,quantile(TTT_Train,     0.70,na.rm=TRUE)),only.finite = TRUE);

##Predictors
PTdept_Train<-.arg3[1:(l-.arg2[1])];
PTdept_xreg<-.arg3[(l-.arg2[1] 1):l];

##Boxcox
TTTlambda <- BoxCox.lambda(sq_TTT_Train);

##Fitting Model
TTT_Arima.fit <- auto.arima(sq_TTT_Train, lambda = TTTlambda,     xreg=PTdept_Train, stepwise=FALSE, approximation = FALSE );

##Forecasting Model
TTT_Acast<-forecast(TTT_Arima.fit,xreg=PTdept_xreg, h=.arg2[1]); 

n<-length(TTT_Train);
TTT_Train[n]=.arg1[l];


append(TTT_Train,TTT_Acast$mean, after = n)",

MEDIAN([data1]),5,[data3])


Data:

dput(data1)
c(63.4372765313806, 30.7020714950508, 61.3762171505454, 67.8098119137313, 
9.90608767587409, 28.2730722109119, 30.5860381744545, 28.5296011735178, 
51.2349910904615, 39.2643897519848, 33.562104814554, 75.7182794817487, 
75.5716262744966, 99.9292128067995, 223.486781951025, 174.357671384739, 
123.572182606563, 81.5962797794171, 62.479987835206, 50.5884333924931, 
106.189812089455, 34.7439347196729, 39.307897419613, 128.066517894731, 
79.3899466114849, 103.986918416265, 174.846986741853, 45.8670416798064, 
32.4510716913794, 29.4709729789433, 22.3799384193593, 34.4048754256376, 
42.593174426779, 66.0600799777264, 80.6798342785803, 117.959229286774, 
-0.437468072813784, 181.962186246928, 74.9786273378472, 339.559155565098, 
228.58525661881, 23.7874697390277, 61.286048922751, 37.9758323399058, 
103.800201056574, 179.916980912313, 43.6877805636916, 11.9667131950155, 
-2.11813031844491, 55.2312544374417)


dput(data3)
c(12.7403717000914, -7.19663803975745, 76.4326912044527, 17.3970323526101, 
7.71359391450461, 58.4774730447122, 40.3155187526539, 107.36312318686, 
53.1703584063198, 111.513879865192, 122.645596924123, 227.778043946375, 
231.561809230002, 61.2564233472132, 231.834312838835, 108.282526002386, 
301.200801619446, 243.809945961832, 410.407674646823, 462.11214896637, 
312.342855191562, 514.55916495712, 452.320943372023, 414.482997139952, 
149.388172905569, 159.977489462244, 179.433048283881, 122.66074523787, 
43.5372892561067, 107.422455826792, 93.5957469916635, 103.263693676251, 
123.598364527977, 185.924336009535, 238.331634927816, 127.943742943097, 
330.249162542821, 637.196201693695, 653.783515619174, 286.384850664611, 
574.207679665304, 450.729429013028, 502.061722085684, 545.109088924087, 
319.357227809765, 575.684384244634, 273.300471939596, 294.507816528409, 
363.3267881272, 314.613593895384)
  

Комментарии:

1. Мне трудно читать то, что должно быть «1», «I» и т. Д. Но, похоже, 1:(l - .arg2[1]) оценивается 1:(-19) , что 1, 0, -1, -2, … -19. Это не подходит для использования внутри [] .

2. @JDL Привет, это должно быть l, а не 1. l=длина(.arg1). Поэтому я бы подумал, что она должна быть равна 1: (45). Я сожалею о плохом выборе переменных.

3. Не уверен, но обычно рекомендуется использовать seq_len(k) , а не 1:k по такой причине.