2017-02-21 10 views
0

私はこの関数をビルドしようとしています。しかし、なぜ私はそれを呼び出すときに関数の出力が表示されませんわからない。私はそれを使用する場合関数の値を返し、NULLを取得します。

df = data.frame(matrix(rnorm(100), nrow=10)) 
Criterio<-rep('+',7) 

modtop<-function(Tpropio,Criterio){ 
suma<- apply(Tpropio,2,sum) 
P<-sweep(Tpropio, 2, suma, `/`) 
maximo<-apply(P,2,max) 
minimo<-apply(P,2,min) 
desviacion<-apply(P,2,sd) 
W<-desviacion/sum(desviacion) 
ncriterios<-length(suma) 
ideal<-vector(mode="numeric",length=ncriterios) 
nadir<-vector(mode="numeric",length=ncriterios) 
for(i in 1:ncriterios){ 
    if(Criterio[i]=='+'){ 
    ideal[i]=maximo[i] 
    nadir[i]=minimo[i] 
    }else{ 
     ideal[i]=minimo[i] 
     nadir[i]=maximo[i] 
    } 
    } 
} 
dipos<-matrix(data=NA,ncol=ncriterios,nrow=dim(P)[1]) 
for(i in 1:ncriterios){ 
    dipos[,i]<-(P[,i]-ideal[i])^2*W[i] 
} 
dipos<-apply(dipos,1,sum) 
dipos<-sqrt(dipos) 

dineg<-matrix(data=NA,ncol=ncriterios,nrow=dim(P)[1]) 
for(i in 1:ncriterios){ 
    dineg[,i]<-(P[,i]-nadir[i])^2*W[i] 
} 
dineg<-apply(dineg,1,sum) 
dineg<-sqrt(dineg) 
T<-dineg+dipos 
T<-dineg/T 
resulT<-data.frame(T) 
row.names(resulT)<-row.names(Tpropio) 
return(resulT) 
} 

機能を定義した後、私はNULLであることを持っているが、私はなぜ理解していない: これは私が作成する機能です。ご協力いただきありがとうございます。わかりやすい質問を書くことを願っております。D

答えて

0

回答が見つかりました。初めには余分な}がありました。結果は次のようになります。

df = data.frame(matrix(rnorm(100), nrow=10)) 
Criterio<-rep('+',7) 
modtop<-function(Tpropio,Criterio){ 
suma<- apply(Tpropio,2,sum) 
P<-sweep(Tpropio, 2, suma, `/`) 
maximo<-apply(P,2,max) 
minimo<-apply(P,2,min) 
desviacion<-apply(P,2,sd) 
W<-desviacion/sum(desviacion) 
ncriterios<-length(suma) 
ideal<-vector(mode="numeric",length=ncriterios) 
nadir<-vector(mode="numeric",length=ncriterios) 
for(i in 1:ncriterios){ 
    if(Criterio[i]=='+'){ 
    ideal[i]=maximo[i] 
    nadir[i]=minimo[i] 
    }else{ 
     ideal[i]=minimo[i] 
     nadir[i]=maximo[i] 
    } 
    } 

dipos<-matrix(data=NA,ncol=ncriterios,nrow=dim(P)[1]) 
for(i in 1:ncriterios){ 
    dipos[,i]<-(P[,i]-ideal[i])^2*W[i] 
} 
dipos<-apply(dipos,1,sum) 
dipos<-sqrt(dipos) 

dineg<-matrix(data=NA,ncol=ncriterios,nrow=dim(P)[1]) 
for(i in 1:ncriterios){ 
    dineg[,i]<-(P[,i]-nadir[i])^2*W[i] 
} 
dineg<-apply(dineg,1,sum) 
dineg<-sqrt(dineg) 
T<-dineg+dipos 
T<-dineg/T 
resulT<-data.frame(T) 
row.names(resulT)<-row.names(Tpropio) 
return(resulT) 
} 
関連する問題