Vediamo il codice postato ieri.
Qui carichiamo la libreria modeest, contenente la funzione mfv (most frequent value) usata più avanti
library(modeest)
poi parametri
maxdicenum=200
trials=5000
quindi partiamo con un for riempiendo una lista, così da non dover pre-allocare vettori (certo è più lento... la comodità di ciò è che, se non applichiamo mean all'output di mfv, nel caso di più valori a parità di occorrenza, nella lista all'i-esimo posto viene scritto tutto il vettore dei vari valori risultanti... se non avete capito applicate mfv a un vettori dove le componenti più frequenti sono, a pari merito, più di una, per vedere che naturalmente la funzione ve le restituisce entrambe, e poi fate girare il ciclo qui sotto togliendo mean)
vallist=list()
for(dicenum in 1:maxdicenum) { x=replicate(trials, sum(sample(1:6,dicenum,replace=T)))
vallist[[dicenum]]=mean(mfv(x))}
Cerchiamo redenzione dal precedente uso del costrutto list convertendola in vettore con la comodissima funzione unlist
maxsum=unlist(vallist)
Stampiamo i grafici; è sempre un enigma, all'inizio, orientarsi in R tra i modi di gestire i grafici... dopo lunghe e frustranti sofferenze, io consiglio il seguente modo
jpeg("dadiscatter.jpeg",width = 800, height = 800, units = "px",quality=100)
plot(maxsum,main="Valore più frequente sommando i valori dati dal lancio di N dadi", xlab="Numero N di dadi", ylab="Valore più probabile" ,xlim=c(min(maxsum),max(maxsum)))
dev.off()
Pre-creazione del file, creazione del grafico, e infine dev.off per "buttarlo in memoria"...
jpeg("dadibarplot.jpeg",width = 800, height = 800, units = "px",quality=100) barplot(maxsum,main="Valore più frequente sommando i risultati del lancio di N dadi", xlab="Numero N di dadi", ylab="Valore più probabile" ,density=F, border=c("green","red","blue","orange", "purple"), names.arg=1:maxdicenum,axisnames=T,axis.lty=1)
dev.off()
Se non ci sono domande, io avrei finito.