[R] Problemi con un ciclo While
Salve ragazzi avrei un problema con un ciclo while e necessito di una mano.
Piccola premessa, per quanti non lo conoscono R è un ambiente di programmazione usato solitamente in Statistica. Il codice da quanto so è simile a S-Plus e Matlab quindi magari anche quelli che non lo conoscono potrebbero essermi di aiuto.
Ho un modello per il quale devo stimare un parametro t, questo avviene solitamente con una cross validation generalizzata. Nel pacchetto ho sia la funzione relativa al modello che quella relativa alla cross validation. L'idea al fine di stimare t è quella di applicare un ciclo while che calcola le varie cv all'aumentare di t fino ad un certo livello, per poi scegliere quel t che corrisponde al minimo di cv.
Il problema al momento credo sia che ad ogni iterazione il ciclo mi sovrappone la cv calcolata e quindi alla fine ho solo l'ultima, quindi dovrei trovare un modo per tenere "salvate" le varie cv calcolate ad ogni iterazione. Ho scritto il seguente ciclo while:
Dopo aver creato
ho scritto il seguente ciclo while
Tutti i consigli sono ben accetti.
Piccola premessa, per quanti non lo conoscono R è un ambiente di programmazione usato solitamente in Statistica. Il codice da quanto so è simile a S-Plus e Matlab quindi magari anche quelli che non lo conoscono potrebbero essermi di aiuto.
Ho un modello per il quale devo stimare un parametro t, questo avviene solitamente con una cross validation generalizzata. Nel pacchetto ho sia la funzione relativa al modello che quella relativa alla cross validation. L'idea al fine di stimare t è quella di applicare un ciclo while che calcola le varie cv all'aumentare di t fino ad un certo livello, per poi scegliere quel t che corrisponde al minimo di cv.
Il problema al momento credo sia che ad ogni iterazione il ciclo mi sovrappone la cv calcolata e quindi alla fine ho solo l'ultima, quindi dovrei trovare un modo per tenere "salvate" le varie cv calcolate ad ogni iterazione. Ho scritto il seguente ciclo while:
Dopo aver creato
i=1 tmax=1 t=0 tinc=0.1
ho scritto il seguente ciclo while
while (t<tmax) { model=l1ce(y_m ~ x_m_1+x_l_1+x_r_1+x_m_2+x_l_2+x_r_2+x_m_3+x_l_3+x_r_3+x_4,bound = t, absolute.t=FALSE) cv=gcv.l1ce(model, type=c("Tibshirani")) t=t+tinc i=i+1 }
Tutti i consigli sono ben accetti.
Risposte
Premesso che non ho mai usato questo linguaggio.
Però concettualmente posso diriti che se devi salvarti n valori, devi utilizzare una struttura lineare che ti consenta di salvarli tutti.
Non ti basta usare una sola variabile se vuoi salvare n valori, anzichè un solo valore.
Ho cercato un pò su internet e da quello che ho capito il linguaggio mette a disposizione 3 diverse strutture lineari:
vettore, array e lista.
Ad esempio per istanziare un vettore dovresti fare una cosa del genere:
dove c è una funzione per creare un vettore, ed i vari t_i sono i termini che costituiscono il vettore.
Però concettualmente posso diriti che se devi salvarti n valori, devi utilizzare una struttura lineare che ti consenta di salvarli tutti.
Non ti basta usare una sola variabile se vuoi salvare n valori, anzichè un solo valore.
Ho cercato un pò su internet e da quello che ho capito il linguaggio mette a disposizione 3 diverse strutture lineari:
vettore, array e lista.
Ad esempio per istanziare un vettore dovresti fare una cosa del genere:
vettore = c(t_1, ..., t_n)
dove c è una funzione per creare un vettore, ed i vari t_i sono i termini che costituiscono il vettore.