Traduction Python->R

Bonsoir à tous,
j'ai écrit le script suivant en R, qui effectue une classification bayesienne naïve sur la célèbre base Iris. Ce script fonctionne très bien, j'ai toutefois l'impression d'avoir fait une traduction "mot à mot" de python vers R  (comme la profusion de boucles for le montre).
Quelqu'un aurait-il un moment pour rendre ce script plus élégant ?
data(iris)
nobs=dim(iris)[1]
idx_s=sample(1:nobs)
ntest=round(nobs*0.7)
dtest=iris[idx_s[1:ntest],]
vtest=iris[idx_s[ntest:nobs],]

moy=matrix(0,3,4)
ect=matrix(0,3,4)

for(v in 1:3){
  sp=lv[v]
  for(a in 1:4){
  moy[v,a]=mean(dtest[dtest$Species==sp,a])
 ect[v,a]=sd(dtest[dtest$Species==sp,a])
  }
  }

bayes<-function(x){
b=matrix(0,1,3)
for(v in 1:3){
  p=1
for(a in 1:4){
  p=p*dnorm(x[a],moy[v,a],ect[v,a])
}
  b[v]=p
}
b
vr<-max(b)==b
out<-sum(as.numeric(vr*c(1,2,3)))
out
}
nt=dim(vtest)[1]

prev=matrix(0,nt,2)

for(a in 1:nt){
  mes=c(0,0,0,0)
  for(i in 1:4){mes[i]<-vtest[a,i]}
  prev[a,1]<-bayes(mes)
  prev[a,2]=vtest[a,5]
}
eff=sum(as.numeric(prev[,1]==prev[,2]))/nt
D'avance merci
F.
PS: L'environnement code renvoie un script sur une seule ligne, ce qui est assez peu lisible. Je remercie par avance le sympathique modérateur qui règlera ce problème ;-)
[À ton service. :) AD]
Connectez-vous ou Inscrivez-vous pour répondre.