Ошибка указывает на то, что вы пытаетесь установить подмножество как положительных, так и отрицательных чисел.Давайте создадим простой пример
dat <- data.frame(A = LETTERS[1:10], B = 1:10)
В этом примере мы можем поднастроить data.frame, используя стандартные методы, как вы делаете в своем собственном коде
dat[0:3,]
, который вернет первые 3строк.Здесь 0 обрабатывается как пустая строка и, таким образом, возвращает пустую строку (отличную от строки с нулями)
dat[0,]
Теперь, если мы по ошибке в результате подмножества, скажем, переменная T, и это дляпо какой-то причине 0 или отрицательно, вы получите ошибку, если хотите вернуть какие-либо конкретные строки.Это, в свою очередь, позволяет избежать любых конфликтов, таких как
dat[c(-1,1),]
, который технически пытается вернуть весь фрейм данных за вычетом первой строки, но включая первую строку, эквивалентную rbind(dat[-1,], dat[1,])
.
Так что, если у нас есть какая-то функция или скрипт, которые поднаборы похожи на ваш скрипт
dataframe<- data.frame( y = INDPROgr[2:T],
INDPROgr = INDRPOgr[1:(T-1)],
HOUSTgr = HOUSTgr[1:(T-1)],
UMCSENTgr = UMCSENTgr[1:(T-1)],
UNRATEgr = UNRATEgr[1:(T-1)],
CFNAIdiff = CFNAIdiff[1:(T-1)])
R вернет ошибку в случае, если T либо 0, либо T-1 = -1
, что означает, что вы поднабор 1:(-1)
,или в качестве альтернативы, если само T отрицательно по тем же причинам.
Поэтому я предлагаю проверить, становится ли T отрицательным или нулевым где-то в вашем коде.