2012-06-04 2 views
0

Я пытаюсь помочь моей девушке с заданием на класс с R. У меня нет идеи о коде, я знаю C++, но я не знаю.Процесс Пуассона с R, abind и другими функциями работает?

Я читал документацию, но если вы можете мне помочь, это было бы здорово!

Следующий код: this сайт.

Часть I Кодекса:

# rm(list=ls(all=TRUE)) 
# It's discourteous to wipe out your responder's entire workspace 
install.packages("abind") 
library(abind) 
simHPP<-function(lambda,T,N){ 
    # lambda: scalar, intensity of the Poisson process 
    # T: scalar, time horizon 
    # N: scalar, number of trajectories 
    EN <- rpois(N,lambda*T) 
    y <- matrix(T,nrow=2*max(EN)+2,ncol=N)*matrix(1,nrow=2*max(EN)+2,ncol=N) 
    yy <- abind(y,matrix(1,nrow=2*max(EN)+2,ncol=N)*EN,along=3) 
i=1 
    while(i<=N){ 
    if(EN[i]>0){ 
    yy[1:(2*EN[i]+1),i,1] <- c(0,rep(sort(T*runif(EN[i])),each=2)) 
    } else { 
    yy[1,i,1]=0 
    } 
    yy[1:(2*EN[i]+2),i,2] <- c(0,floor((1:(2*EN[i]))/2),EN[i]) 
    i=i+1 
    } 
    return(yy) 
} 

Функция abind, как это работает? Оператор присваивания (=) в R выглядит как (< -)?

И, например, что это такое?

yy[1:(2*EN[i]+1),i,1] <- c(0,rep(sort(T*runif(EN[i])),each=2)) 
+0

'<-' и' = 'обычно можно считать эквивалентными, за исключением в контексте списка аргументов к функции. Этот автор переменил свободно, что не считается лучшей практикой R. –

ответ

1

Существует сайт проверки кода, и это может быть приемлемым, поскольку вы просите (частично) для интерпретации кода, для которого вы не дали контекст.

(т заблуждение, хотя и не ошибка, использовать капитал T для имени вектора, так как назначение по умолчанию для этого имени является логическое значение ИСТИНА.)

abind принимает массивы в качестве аргументов и возвращает увеличенных массивов. Если у вас есть два 2 х 2 х 2 массивов и вы abind тогда вы получите 2 х 2 х 4 массив

abind(array(1:8, c(2,2,2)), array (9:16, c(2,2,2))) 
#------------ 
, , 1 
    [,1] [,2] 
[1,] 1 3 
[2,] 2 4 

, , 2 
    [,1] [,2] 
[1,] 5 7 
[2,] 6 8 

, , 3 
    [,1] [,2] 
[1,] 9 11 
[2,] 10 12 

, , 4 
    [,1] [,2] 
[1,] 13 15 
[2,] 14 16 
Смежные вопросы