RStudio e funzionamento ciclo for

di il
6 risposte

RStudio e funzionamento ciclo for

Ciao a tutti, pur cercando su internet non sono riuscito a trovare soluzione al mio problema:

dato un vettore x con numeri da 1 a 20, devo assegnare
x(i)=i
per ogni i e poi calcolare
w(i)=1+sqrt(x(i))/2
evidentemente è da fare con un semplice ciclo for(anzi è richiesto) ma non riesco a farlo funzionare su RStudio
x=vector(length=20)
w=vector(length=20)
for(i in 1:20) {
x[i]=i
w[i]=1+sqrt(x[i])/2
}
print(x)
print(w)
Qualcuno esperto di R mi può aiutare a capire dove sto sbagliando e perchè?
grazie

6 Risposte

  • Re: RStudio e funzionamento ciclo for

    x=rep(NA,20)
    w=rep(NA,20)
    for(i in 1:20) {
    x[i]=i
    w[i]=1+sqrt(x[i])/2
    }
    print(x)
    print(w)
    
  • Re: RStudio e funzionamento ciclo for

    lovepeacejoy ha scritto:


    x=rep(NA,20)
    w=rep(NA,20)
    for(i in 1:20) {
    x[i]=i
    w[i]=1+sqrt(x[i])/2
    }
    print(x)
    print(w)
    
    Grazie della risposta, ma non ho ben compreso questo pezzo di codice:
    x=rep(NA,20)
    w=rep(NA,20)
    da cosa dipende?
  • Re: RStudio e funzionamento ciclo for

    La funzione rep crea un vettore di n elementi ripetendo n volte un valore. NA in statistica è un valore non disponibile. In ogni caso un vettore in R si crea con c(n1,n2,n3,...) dove n1,n2,n3, sono 3 valori del vettore
  • Re: RStudio e funzionamento ciclo for

    Grazie mille
  • Re: RStudio e funzionamento ciclo for

    Niente evidentemente
    Il ciclo for NON TI SERVE.

    R ragiona in termini di ""vettori"" (in realta' in termini di ""tensori"", la versione generalizzata di vettori, matrici, ...)

    Dato un vettore
    x=seq.int(1,20)
    se scrivi
    sqrt(x)
    GIA' R si occupa di applicare la funzione a TUTTI GLI ELEMENTI del vettore!

    Quindi il tuo ciclo for si riduce a :
    w=1+sqrt(x)/2
    SENZA for, e funziona lo stesso
  • Re: RStudio e funzionamento ciclo for

    Grazie mille, non lo sapevo che funziona cosi!

    Tutto molto più semplice
Devi accedere o registrarti per scrivere nel forum
6 risposte