2014-09-13 14 views
6

Ho un problema con il Programma R. Ho programmato questo codice e quando voglio proseguire, ottengo il messaggio di errore:oggetto errore di tipo 'chiusura' non è subsettable

Errore in daten.asset [[s]]: l'oggetto di tipo 'closure' non è subseable.

Sono abbastanza sconosciuto con programmazione e lotta piuttosto difficile a volte. Qualcuno può aiutarmi?

Grazie per qualsiasi tentativo.

My Code:

r.M.ZR <- arima.sim(model=list(ar=0.6), n = 1100) ; 
r.M <-as.vector(r.M.ZR,mode="numeric"); 
tilde.r.M <- r.M - mean(r.M) 
M <- matrix(c(tilde.r.M, tilde.r.M),2,1100) 

A=matrix(c(0.5,0,0,0.5),2,2) 

X <- c(0,rnorm(1400, 0, 0.5))   
Y <- c(0,rnorm(1400, 0, 0.5)) 

Zeta=matrix(0,2,1401)  
Zeta[1,]=X 
Zeta[2,]=Y       

epsilon=matrix(0,2,1401) 
epsilon[,1]=0      

for (i in 2:1401){ 
    epsilon[,i]=A%*%epsilon[,i-1] + Zeta[,i] 
} 

epsilon=epsilon[,302:1401]   
alpha <- vector(mode="numeric", length= 1100) 
beta <- rep(1, 1100) 


daten.asset<-function(){ 
    da<-vector(mode="list",length=s); 
    for (s in 1:2500) { 
    r.i1.ZR <- alpha + beta %*% r.iM[,1] + epsilon; 
    r.i1 <-as.vector(r.i1.ZR,mode="numeric"); 
    r.i2.ZR<- alpha + beta %*% r.iM[,2] + epsilon; 
    r.i2 <-as.vector(r.i2.ZR,mode="numeric"); 
    A[s] <- matrix(c(r.i1, r.i2),2,1100) 
    print(i) 
    }; #for 
return(da) 
} 

for(s in 1:2500){ 
mu.1 <- hubers(daten.asset[[s]][1,1:100], k=1.5, s=1)$mu 
mu.2 <- hubers(daten.asset[[s]][2,1:100], k=1.5, s=1)$mu 

epsilon.dach.1 <- daten.asset[[s]][1,1:100] - mu.1 
epsilon.dach.2 <- daten.asset[[s]][2,1:100] - mu.2 

epsilon.dach <- matrix(c(epsilon.dach.1,epsilon.dach.2),2,100)} 

huber.psi <- function(x, k=1.345) ifelse(abs(x) < k, 2*x, 2*k*sign(x)) 
psi.epsilon1 <- huber.psi(epsilon1) 
psi.epsilon2 <- huber.psi(epsilon2) 


psi.epsilon <- matrix(c(psi.epsilon1,psi.epsilon2),2,100) 

risposta

14

L'errore:

Error in daten.asset[[s]] : object of type 'closure' is not subsettable. 

significa che si sta chiamando la funzione di daten.asset (chiusura) come data.frame o matrice (subsettable). Cambiare

daten.asset[[s]] 

a

daten.asset()[[s]] 

dovrebbe risolvere il problema.

Problemi correlati