Vai al contenuto principale

Cicli for in R

Quando sai quante volte vuoi ripetere un'azione, un ciclo for è una buona opzione. Padroneggia i cicli for con questo tutorial.
Aggiornato 29 set 2026  · 5 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity


Padroneggia i cicli for e altre funzioni essenziali di R con il nostro corso introduttivo a R.

Ciclo su un vettore

Quando sai quante volte vuoi ripetere un'azione, un ciclo for è una buona opzione. L'idea del ciclo for è di scorrere una sequenza, un elemento alla volta, ed eseguire un'azione a ogni passaggio. Quella sequenza è spesso un vettore di numeri (come la sequenza 1:10), ma può anche essere una serie di numeri non in ordine come c(2, 5, 4, 6), o persino una sequenza di caratteri!

for (value in sequence) {
    code
}

In parole povere, significa: "per ogni valore nella mia sequenza, esegui questo codice". Gli esempi potrebbero essere: "per ogni riga del mio data frame, stampa la colonna 1" oppure "per ogni parola della mia frase, verifica se quella parola è DataCamp".

Proviamo con un esempio! Per prima cosa, creerai un ciclo che stampa i valori in una sequenza da 1 a 10. Poi modificherai quel ciclo per sommare anche i valori da 1 a 10, in cui a ogni iterazione il valore successivo della sequenza viene aggiunto alla somma parziale.

Istruzioni

È stato creato per te un vettore seq. Completa il ciclo for usando seq come sequenza. Stampa value a ogni iterazione. È stata creata per te una variabile sum. Usa il ciclo per sommare i numeri in seq. A ogni iterazione, value deve essere aggiunto a sum, quindi stampa sum.

eyJsYW5ndWFnZSI6InIgIiwicHJlX2V4ZXJjaXNlX2NvZGUiOiJcbiIsInNh bXBsZSI6IlxuIyBTZXF1ZW5jZVxuICAgICAgICAgc2VxIDwtIGMoMToxMClc blxuICAgICAgICAgIyBQcmludCBsb29wXG4gICAgICAgICBmb3IgKHZhbHVl IGluIF9fXykge1xuICAgICAgICAgICBwcmludChfX18pXG4gICAgICAgICB9 XG5cbiAgICAgICAgICAjIEEgc3VtIHZhcmlhYmxlXG4gICAgICAgICAgc3Vt IDwtIDBcblxuICAgICAgICAgICMgU3VtIGxvb3BcbiAgICAgICAgICBmb3IgKHZhbHVlIGluIHNlcSkge1xuICAgICAgICAgIHN1bSA8LSBfX18gKyBfX19c biAgICAgICAgICBwcmludChfX18pXG4gICAgICAgICAgfSIsInNvbHV0aW9u IjoiXG4jIFNlcXVlbmNlXG4gICAgICAgICAgc2VxIDwtIGMoMToxMClcblxu ICAgICAgICAgICMgUHJpbnQgbG9vcFxuICAgICAgICAgIGZvciAodmFsdWUg aW4gc2VxKSB7XG4gICAgICAgICAgICAgIHByaW50KHZhbHVlKVxuICAgICAg ICAgIH1cblxuICAgICAgICAgICMgQSBzdW0gdmFyaWFibGVcbiAgICAgICAg ICBzdW0gPC0gMFxuXG4gICAgICAgICAgIyBTdW0gbG9vcFxuICAgICAgICAg IGZvciAodmFsdWUgaW4gc2VxKSB7XG4gICAgICAgICAgICAgIHN1bSA8LSBz dW0gKyB2YWx1ZVxuICAgICAgICAgICAgICBwcmludChzdW0pXG4gICAgICAg ICAgfSIsInNjdCI6IlxudGVzdF9wcmVkZWZpbmVkX29iamVjdHMoXCJzZXFc IilcblxuICAgICAgICAgIHRlc3RfZm9yX2xvb3AoY29uZF90ZXN0ID0gdGVz dF9zdHVkZW50X3R5cGVkKFwidmFsdWUgaW4gc2VxXCIpLFxuICAgICAgICAg ICAgICAgICAgZXhwcl90ZXN0ID0gdGVzdF9mdW5jdGlvbihcInByaW50XCIsIGFyZ3MgPSBcInhcIiksXG4gICAgICAgICAgICAgICAgICBpbmRleCA9IDEp XG5cbiAgICAgICAgICB0ZXN0X2Zvcl9sb29wKGNvbmRfdGVzdCA9IHRlc3Rf c3R1ZGVudF90eXBlZChcInZhbHVlIGluIHNlcVwiKSxcbiAgICAgICAgICAg ICAgICAgICAgICBleHByX3Rlc3QgPSB0ZXN0X2NvcnJlY3QodGVzdF9mdW5j dGlvbihcInByaW50XCIsIGFyZ3MgPSBcInhcIiksIHsgIyBJZiB0aGUgcHJp bnQgc3RhdGVtZW50IGlzIHdyb25nLCB0aGVuIGNoZWNrIHRoZSBhc3NpZ25t ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9vcih0ZXN0X3N0dWRlbnRfdHlwZWQoXCJzdW0gKyB2YWx1ZVwiKSwg IyBEaWQgdGhleSBhc3NpZ24gdGhpcyBjb3JyZWN0bHk/XG4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N0 dWRlbnRfdHlwZWQoXCJ2YWx1ZSArIHN1bVwiKVxuICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAg ICAgICAgICAgaW5kZXggPSAyKVxuXG4gICAgICAgICAgICBzdWNjZXNzX21z ZyhcIkdyZWF0IGpvYiEgTGV0J3Mgc2VlIHdoYXQgZWxzZSB5b3UgY2FuIGRv IHdpdGggZm9yIGxvb3BzLlwiKSIsImhpbnQiOiJcbi0gSW4gdGhlIGZpcnN0 IGxvb3AsIHJlbWVtYmVyIHdoYXQgeW91ciBzZXF1ZW5jZSBzaG91bGQgYmUu XG4gICAgICAgICAgICAgICAgIC0gSW4gdGhlIHNlY29uZCBsb29wLCB5b3Ug aGF2ZSB0byBhZGQgYHZhbHVlYCB0byBgc3VtYCBhbmQgdGhlbiBh c3NpZ24gdGhhdCB2YWx1ZSBiYWNrIHRvIGBzdW1gLiJ9

Se tutto è chiaro, prosegui con l'esercizio successivo! In caso contrario, ecco un video panoramico.

Video panoramico sui cicli for in R

Ciclo sulle righe di un data frame

Immagina che ti interessino i giorni in cui il prezzo delle azioni Apple supera 117. Se va oltre questo valore, vuoi stampare la data corrente e il prezzo dell'azione. Se hai un data frame stock con una colonna date e una colonna del prezzo di apple, potresti iterare sulle righe del data frame per farlo? Certo che sì!

Prima di farlo, nota che puoi ottenere il numero di righe del tuo data frame con nrow(stock). Poi, puoi creare una sequenza su cui ciclare con 1:nrow(stock).

for (row in 1:nrow(stock)) {
    price <- stock[row, "apple"]
    date  <- stock[row, "date"]

    if(price > 117) {
        print(paste("On", date,
                    "the stock price was", price))
    }
}
[1] "On 2016-12-21 the stock price was 117.06"
[1] "On 2016-12-27 the stock price was 117.26"

Questo mette insieme diverse cose che abbiamo imparato finora. Istruzioni if, sottoinsiemi di vettori, condizionali e cicli! Congratulazioni per tutto quello che hai imparato!

Istruzioni

stock è nel tuo workspace.

Compila gli spazi vuoti nel ciclo for per rendere vere le seguenti condizioni:

  • price deve contenere il prezzo dell'iterazione corrente
  • date deve contenere la data dell'iterazione corrente
  • Questa volta vuoi sapere se apple supera 116.
  • Se lo supera, stampa date e price.
  • Se è stato sotto 116, stampa la date e stampa che non è stato un giorno importante!
eyJsYW5ndWFnZSI6InIgIiwicHJlX2V4ZXJjaXNlX2NvZGUiOiJcbnN0b2Nr IDwtIGRhdGEuZnJhbWUoXG4gICAgICAgICAgICAgIGRhdGUgPSBhcy5EYXRl KGMoXCIyMDE2LTEyLTAxXCIsIFwiMjAxNi0xMi0wMlwiLCBcIjIwMTYtMTIt MDNcIiwgXCIyMDE2LTEyLTA0XCIsIFwiMjAxNi0xMi0wNVwiLCBcIjIwMTYt MTItMDZcIiwgXCIyMDE2LTEyLTA3XCIsXG4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcIjIwMTYtMTItMDhcIiwgXCIyMDE2LTEyLTA5XCIsIFwi MjAxNi0xMi0xMFwiLCBcIjIwMTYtMTItMTFcIiwgXCIyMDE2LTEyLTEyXCIs IFwiMjAxNi0xMi0xM1wiLCBcIjIwMTYtMTItMTRcIixcbiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwiMjAxNi0xMi0xNVwiLCBcIjIwMTYtMTIt MTZcIiwgXCIyMDE2LTEyLTE3XCIsIFwiMjAxNi0xMi0xOFwiLCBcIjIwMTYt MTItMTlcIiwgXCIyMDE2LTEyLTIwXCIsIFwiMjAxNi0xMi0yMVwiLFxuICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDE2LTEyLTIyXCIsIFwi MjAxNi0xMi0yM1wiLCBcIjIwMTYtMTItMjRcIiwgXCIyMDE2LTEyLTI1XCIsIFwiMjAxNi0xMi0yN1wiLCBcIjIwMTYtMTItMjhcIiwgXCIyMDE2LTEyLTI5 XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMTYtMTIt MzBcIikpLFxuXG4gICAgICAgICAgICAgIGFwcGxlID0gYygxMDkuNDksIDEw OS45MCwgTkEsIE5BLCAxMDkuMTEsIDEwOS45NSwgMTExLjAzLCAxMTIuMTIs IDExMy45NSwgTkEsIE5BLCAxMTMuMzAsIDExNS4xOSxcbiAgICAgICAgICAg ICAgICAgICAgICAgIDExNS4xOSwgMTE1LjgyLCAxMTUuOTcsIE5BLCBOQSwg MTE2LjY0LCAxMTYuOTUsIDExNy4wNiwgMTE2LjI5LCAxMTYuNTIsIE5BLCBO QSwgMTE3LjI2LFxuICAgICAgICAgICAgICAgICAgICAgICAgMTE2Ljc2LCAx MTYuNzMsIDExNS44MilcbiAgICAgICAgICApXG4gICAgICAgICAgc3RvY2sg PC0gc3Vic2V0KHN0b2NrLCAhaXMubmEoYXBwbGUpKSIsInNhbXBsZSI6Ilxu IyBMb29wIG92ZXIgc3RvY2sgcm93c1xuICAgICAgICAgZm9yIChyb3cgaW4gMTpfX18pIHtcbiAgICAgICAgICAgICAgcHJpY2UgPC0gc3RvY2tbX19fLCBcIl9fX1wiXVxuICAgICAgICAgICAgICBkYXRlICA8LSBzdG9ja1tfX18sIFwiX19fXCJdXG5cbiAgICAgICAgICAgICAgaWYoX19fID4gX19fKSB7XG4gICAgICAgICAgICAgICAgICBwcmludChwYXN0ZShcIk9uXCIsIF9fXyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGhlIHN0b2NrIHByaWNlIHdhc1wiLCBfX18pKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcHJpbnQocGFzdGUoXCJUaGUgZGF0ZTosIF9fXyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXMgbm90IGFuIGltcG9ydGFudCBkYXkhXCIpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9Iiwi c29sdXRpb24iOiJcbiMgTG9vcCBvdmVyIHN0b2NrIHJvd3NcbiAgICAgICAg ICBmb3IgKHJvdyBpbiAxOm5yb3coc3RvY2spKSB7XG4gICAgICAgICAgICAg IHByaWNlIDwtIHN0b2NrW3JvdywgXCJhcHBsZVwiXVxuICAgICAgICAgICAg ICBkYXRlICA8LSBzdG9ja1tyb3csIFwiZGF0ZVwiXVxuXG4gICAgICAgICAg ICAgIGlmKHByaWNlID4gMTE2KSB7XG4gICAgICAgICAgICAgICAgICBwcmlu dChwYXN0ZShcIk9uXCIsIGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcInRoZSBzdG9jayBwcmljZSB3YXNcIiwgcHJpY2UpKVxuICAg ICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcHJpbnQo cGFzdGUoXCJUaGUgZGF0ZTpcIiwgZGF0ZSxcbiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwiaXMgbm90IGFuIGltcG9ydGFudCBkYXkhXCIpKVxu ICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9Iiwic2N0IjoiXG50ZXN0 X3ByZWRlZmluZWRfb2JqZWN0cyhcInN0b2NrXCIpXG5cbiAgICAgICAgICB0 ZXN0X2Zvcl9sb29wKGNvbmRfdGVzdCA9IHRlc3Rfc3R1ZGVudF90eXBlZChc InJvdyBpbiAxOm5yb3coc3RvY2spXCIpLFxuICAgICAgICAgICAgICAgICAg ICAgICAgZXhwcl90ZXN0ID0gdGVzdF9pZl9lbHNlKGlmX2NvbmRfdGVzdCAg ID0gdGVzdF9zdHVkZW50X3R5cGVkKFwicHJpY2UgPiAxMTZcIiksXG4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp Zl9leHByX3Rlc3QgICA9IHRlc3RfZnVuY3Rpb24oXCJwcmludFwiLCBhcmdz ID0gXCJ4XCIsIGluY29ycmVjdF9tc2cgPSBcIlRoZSBwcmludCBzdGF0ZW1l bnQgb3V0cHV0IGlzIGluY29ycmVjdCwgYXJlIGBkYXRlYCBhbmQgYHByaWNl YCBkZWZpbmVkIGNvcnJlY3RseT9cIiksXG5cbiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VfZXhwcl90ZXN0 ID0gdGVzdF9mdW5jdGlvbihcInByaW50XCIsIGFyZ3MgPSBcInhcIikpXG4g ICAgICAgICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICBzdWNjZXNz X21zZyhcIk5pY2Ugam9iIVwiKSIsImhpbnQiOiJcbi0gVGhlIGJsYW5rcyB5 b3UgZmlsbCBpbiBzaG91bGQgYmUgc2ltaWxhciB0byB0aGUgZXhhbXBsZS5c biAgICAgICAgICAgICAgICAtIEZvciB0aGUgZWxzZSBzdGF0ZW1lbnQgYmxh bmtzLCB5b3UgbmVlZCB0byBzZWxlY3QgdGhlIGBkYXRlYCBmb3IgdGhlIGN1 cnJlbnQgcm93LiJ9

Ciclo sugli elementi di una matrice

Finora hai iterato su tipi di dato monodimensionali. Se vuoi ciclare sugli elementi di una matrice (colonne e righe), dovrai usare cicli annidati. Userai questa idea per stampare le correlazioni tra tre azioni.

Il modo più semplice per pensarci è questo: parti dalla riga 1 e ti muovi verso destra, passando per col1, col2, ... fino all'ultima colonna della riga 1. Poi scendi alla riga 2 e ripeti il processo.

my_matrix
     [,1]   [,2]  
[1,] "r1c1" "r1c2"
[2,] "r2c1" "r2c2"

# Loop over my_matrix
for(row in 1:nrow(my_matrix)) {
    for(col in 1:ncol(my_matrix)) {
        print(my_matrix[row, col])
    }
}
[1] "r1c1"
[1] "r1c2"
[1] "r2c1"
[1] "r2c2"

Istruzioni

La matrice di correlazione, corr, è nel tuo workspace.

  • Stampa corr per dare un'occhiata ai dati.
  • Completa il ciclo annidato! Dovrebbe soddisfare quanto segue:
    • Il ciclo esterno deve scorrere le row di corr.
    • Il ciclo interno deve scorrere le col di corr.
    • L'istruzione di stampa deve stampare i nomi della colonna e della riga correnti, e anche la loro correlazione.
eyJsYW5ndWFnZSI6InIgIiwicHJlX2V4ZXJjaXNlX2NvZGUiOiJcbnN0b2Nr cyA8LSBjKFwiYXBwbGVcIiwgXCJpYm1cIiwgXCJtaWNyXCIpXG4gICAgICAg IGNvcnIgPC0gbWF0cml4KGMoMSwgLjk2LCAuODgsIC45NiwgMSwgLjc0LCAu ODgsIC43NCwgMSksIG5yb3c9MylcblxuICAgICAgICBjb2xuYW1lcyhjb3Jy KSA8LSBzdG9ja3NcbiAgICAgICAgcm93bmFtZXMoY29ycikgPC0gc3RvY2tzIiwic2FtcGxlIjoiXG4gICMgUHJpbnQgb3V0IGNvcnJcblxuXG4gICAgICAg ICMgQ3JlYXRlIGEgbmVzdGVkIGxvb3BcbiAgICAgICAgZm9yKHJvdyBpbiAx Om5yb3coX19fKSkge1xuICAgICAgICAgICAgZm9yKGNvbCBpbiAxOl9fXyhj b3JyKSkge1xuICAgICAgICAgICAgICAgIHByaW50KHBhc3RlKGNvbG5hbWVz KGNvcnIpW19fX10sIFwiYW5kXCIsIHJvd25hbWVzKGNvcnIpW19fX10sXG4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYXZlIGEgY29ycmVsYXRp b24gb2ZcIiwgY29ycltyb3csY29sXSkpXG4gICAgICAgICAgICB9XG4gICAg ICAgIH0iLCJzb2x1dGlvbiI6IlxuICAjIFByaW50IG91dCBjb3JyXG4gICAg ICAgICAgY29yclxuXG4gICAgICAgICAgIyBDcmVhdGUgYSBuZXN0ZWQgbG9v cFxuICAgICAgICAgIGZvcihyb3cgaW4gMTpucm93KGNvcnIpKSB7XG4gICAg ICAgICAgICAgIGZvcihjb2wgaW4gMTpuY29sKGNvcnIpKSB7XG4gICAgICAg ICAgICAgICAgICBwcmludChwYXN0ZShjb2xuYW1lcyhjb3JyKVtjb2xdLCBc ImFuZFwiLCByb3duYW1lcyhjb3JyKVtyb3ddLFxuICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXCJoYXZlIGEgY29ycmVsYXRpb24gb2ZcIiwgY29y cltyb3csY29sXSkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9Iiwi c2N0IjoiXG50ZXN0X2Zvcl9sb29wKGNvbmRfdGVzdCA9IHRlc3Rfc3R1ZGVu dF90eXBlZChcInJvdyBpbiAxOm5yb3coY29ycilcIiksXG4gICAgICAgICAg ICAgICAgICAgICAgICBleHByX3Rlc3QgPSB0ZXN0X2Zvcl9sb29wKGNvbmRf dGVzdCAgID0gdGVzdF9zdHVkZW50X3R5cGVkKFwiY29sIGluIDE6bmNvbChj b3JyKVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXhwcl90ZXN0ICAgPSB0ZXN0X2Z1bmN0aW9uKFwi cHJpbnRcIiwgYXJncyA9IFwieFwiLCBpbmNvcnJlY3RfbXNnID0gXCJUaGUg cHJpbnQgc3RhdGVtZW50IG91dHB1dCBpcyBpbmNvcnJlY3QsIGRpZCB5b3Ug ZmlsbCBpbiBgY29sYCBhbmQgYHJvd2AgZm9yIHRoZSBibGFua3M/XCIpXG4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAg ICBzdWNjZXNzX21zZyhcIk5pY2UhIFRoYXQgd2FzIGEgdG91Z2ggb25lLiBO ZXN0ZWQgbG9vcHMgcmVxdWlyZSBhIGxvdCBvZiBjb21wdXRhdGlvbmFsIGVu ZXJneSwgYmVjYXVzZSBzbyBtYW55IGNhbGN1bGF0aW9ucyBhcmUgcmVxdWly ZWQuXCIpIiwiaGludCI6IlxuICAtIERvbid0IGZvcmdldCB0byB1c2UgdGhl IGBucm93KClgIGFuZCBgbmNvbCgpYCBmdW5jdGlvbnMgaW4geW91ciBsb29w LlxuICAgICAgICAgICAgICAgICAgLSBUaGUgY29kZSB1c2VkIHRvIGNyZWF0 ZSB0aGUgc3RydWN0dXJlIG9mIHRoZSBsb29wIHNob3VsZCBiZSB0aGUgc2Ft ZSBhcyB0aGUgZXhhbXBsZS4ifQ==

Dai un'occhiata anche al nostro Tutorial sui cicli in R.

Argomenti
R
Data Science

Scopri di più su R

Corso

R intermedio

6 ore
679.6K
Continua il tuo percorso per diventare un ninja di R imparando le istruzioni condizionali, i cicli e le funzioni sui vettori.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro