Ошибка в *tmp *[[j]] :нижний индекс за пределами

Извиняюсь за длинный пост! Я новичок в R и много работаю над улучшением своего владения языком. Наткнулся на интересный проект по моделированию футбольных результатов:http://www1.maths.leeds.ac.uk/~voss/projects/2010-sports/JamesGardner.pdf

Я продолжаю сталкиваться с проблемами, когда запускаю код для имитации полного сезона (, первое упоминание на странице 36, приложение, страница 59 ):

Games <- function(parameters) 

{
teams <- rownames(parameters)
P <- parameters$teams
home <- parameters$home
n <- length(teams)
C <- data.frame()
row <- 1
for (i in 1:n) {
  for (j in 1:n) {
    if (i != j) {
C[row,1] <- teams[i]
C[row,2] <- teams[j]
C[row,3] <- rpois(1, exp(P[i,]$Attack - P[j,]$Defence + home))
C[row,4] <- rpois(1, exp(P[j,]$Attack - P[i,]$Defence))
row <- row + 1
    }
  }
}
return(C)
}

Games(TeamParameters)

. Я получаю ответ

Error in `*tmp*`[[j]] : subscript out of bounds 

Когда я пытаюсь выполнить трассировку (), вот что я получаю:

3: `[<-.data.frame`(`*tmp*`, row, 1, value = NULL) at #11

2: `[<-`(`*tmp*`, row, 1, value = NULL) at #11

1: Games(TeamParameters)

Я действительно не понимаю, что означает ошибка, и я был бы признателен за любую помощь. Еще раз извините за длинный пост, но я действительно заинтересован в этом проекте и хотел бы узнать, в чем проблема!

5
задан 42- 6 August 2012 в 16:10
поделиться