Vai al contenuto principale

Funzione c() in R: crea vettori in modo semplice

Scopri come usare la funzione c() in R per combinare valori in vettori in modo efficiente.
· 2 min leggi

Scopri con l'IA

La funzione c() in R è il modo più semplice per creare e combinare vettori. È una parte fondamentale del modo in cui R gestisce i dati, ed è qualcosa che ogni utente R dovrebbe conoscere.

Se stai iniziando ora con R, assicurati di seguire il nostro corso Introduction to R Programming per imparare tutte le basi, inclusi vettori, liste, data frame e altro ancora. Ho anche scritto un articolo su come imparare R se vuoi creare un piano di studio.

(E se sei curioso di conoscere il modo difficile per creare vettori, ho preparato una FAQ alla fine.)

Che cos’è la funzione c() in R?

La documentazione di c() in R ci dice che c() combina valori in un vettore (quindi credo sia lecito supporre che la “c” stia per “combine”). Se non ti è chiaro cosa significhi, te lo mostro negli esempi qui sotto.  

Prima di proseguire, va detto più nello specifico che la funzione c() accetta un numero qualsiasi di argomenti e restituisce un vettore contenente tutti i valori. Se i tipi di dato sono diversi, converte automaticamente i valori in un tipo comune (quello più flessibile), quando necessario.

Usare c() per combinare valori

Primo esempio: puoi usare c() per creare vettori combinando valori o variabili singole. Come vedi in questi esempi, c() funziona con diversi tipi di dato, come numerico, carattere e logico.

numeric_vector <- c(10, 20, 30, 40) 
character_vector <- c("apple", "banana", "cherry") 
logical_vector <- c(TRUE, FALSE, TRUE)

Combinare vettori esistenti con c()

Puoi anche combinare vettori già esistenti usando c(). Questo è utile quando vuoi unire più fonti di dati o risultati.

first_half <- c(1, 2, 3)
second_half <- c(4, 5, 6)
full_vector <- c(first_half, second_half)

Usare c() con elementi nominati

Puoi assegnare nomi agli elementi di un vettore usando c(). È utile per etichettare i dati.

fruit_counts <- c(apple = 5, banana = 3, cherry = 7)

c() con tipi di dato diversi

Quando combini tipi di dato diversi, c() convertirà tutti gli elementi nel tipo più flessibile. Ad esempio, combinare numeri e stringhe produce un vettore di caratteri. Questo perché "two" non può essere letto come numerico, mentre "1" potrebbe essere un carattere.

mixed_vector <- c(1, "two", 3)

Il risultato qui sarà un vettore di caratteri: "1", "two", "3".

Creare un data frame con c()

Puoi usare c() per creare vettori che fungeranno da colonne in un data frame. Per farlo, uso anche la funzione data.frame() per mettere insieme i vettori.

customer_names <- c("Alice", "Bob", "Charlie")
purchase_totals <- c(120.50, 75.00, 99.99)
customer_data <- data.frame(name = customer_names, total = purchase_totals)

Conclusione

Come hai visto, la funzione c() è una parte essenziale della programmazione in R. Negli esempi ho mostrato come puoi sia creare sia combinare vettori.

Segui il nostro corso Introduction to R Programming per un percorso strutturato con cui iniziare e continuare a far crescere le tue competenze.

Josef Waples

Autore

Josef Waples

Sono uno scrittore e editor di data science, con contributi a articoli di ricerca su riviste scientifiche. Sono particolarmente interessato ad algebra lineare, statistica, R e affini. Inoltre, gioco anche parecchio a scacchi! 

Domanda finale

Hai detto che c() è il modo facile per creare vettori. Qual è quello difficile?

Sebbene c() sia il metodo più comodo e adatto ai principianti, esistono modi più complessi per creare vettori in R. Eccone alcuni:

Inizializzazione manuale con vector() e indicizzazione 

Puoi creare un vettore vuoto di un certo tipo e lunghezza, quindi riempirlo un elemento alla volta:

x <- vector("numeric", 3) x[1] <- 1 x[2] <- 2 x[3] <- 3

Funziona, ma è più verboso e meno intuitivo per chi inizia.

Uso ripetuto di append() 

Potresti partire da un vettore vuoto e continuare ad aggiungere valori:

x <- c() x <- append(x, 1) x <- append(x, 2) x <- append(x, 3)

È inefficiente e più difficile da leggere.

Uso di altre funzioni come seq() o rep()

Queste funzioni generano pattern specifici e sono potenti, ma eccessive per vettori semplici:

x <- seq(1, 3) y <- rep(1:3, times = 1)

 Appiattire altre strutture 

Potresti estrarre elementi da una lista e convertirla in un vettore:

my_list <- list(1, 2, 3) x <- unlist(my_list)

Argomenti

Correlato