{count, plural, one {Corso} other {Corsi}}
Una stringa è un valore di tipo carattere composto da un singolo carattere o da una raccolta di caratteri. È racchiusa tra apici singoli ('Questa è una stringa') o tra virgolette doppie ("Anche questa è una stringa"). Tuttavia, nella rappresentazione interna R utilizza le virgolette doppie per le stringhe.
In questo tutorial imparerai a conoscere le stringhe in R e tratteremo i seguenti argomenti.
- Per prima cosa vedrai le stringhe in R e le regole per le stringhe in R.
- Successivamente, approfondirai la concatenazione di stringhe in R insieme ad altre proprietà essenziali delle stringhe.
- Inoltre, l'estrazione e la sostituzione di una stringa di caratteri sono spiegate in dettaglio.
- Infine, la formattazione delle stringhe, ovvero qualsiasi input vettoriale convertito in un formato ben strutturato.
Regole per le stringhe in R
- La stringa che inizia con un apice singolo deve terminare con un apice singolo. Puoi comunque inserire virgolette doppie e, tramite la sequenza di escape ('\'), anche l'apice singolo può far parte della stringa.
Per esempio: 'cars', 'merry"s', 'merry\'s' sono stringhe valide in R.
- La stringa che inizia con virgolette doppie deve terminare con virgolette doppie. Puoi comunque inserire apici singoli e, tramite la sequenza di escape ('\'), anche le virgolette doppie possono far parte della stringa.
Per esempio: "cars", "merry's", "merry\"s" sono anch'esse stringhe valide in R.
Concatenazione di stringhe
La concatenazione di stringhe consiste nell'unire o fondere più stringhe.
La sintassi per concatenare stringhe in R è la seguente:paste(..., sep = "",collapse = NULL)paste0(..., collapse = NULL)
Gli argomenti di paste sopra indicano:
- '...' - Indica uno o più caratteri o oggetti che vengono convertiti in vettori di caratteri.
- 'sep' - Indica un carattere di separazione.
- 'collapse' - Indica un carattere di separazione opzionale.
Per esempio, considera l'esempio qui sotto in cui le variabili contengono stringhe di caratteri:
my.var1 = "I"
my.var2 = "eat"
my.var3 = "rice"
print(paste(my.var1,my.var2,my.var3))
Il codice sopra restituisce una singola stringa come sotto:
"I eat rice"
Per esempio, considera l'esempio qui sotto in cui le variabili contengono vettori convertiti in una singola stringa:
my.var1 = c('Book','Copy')
my.var2 = c('Pen','Chair')
print(paste(my.var1,my.var2,sep=" ",collapse="-"))
Il codice sopra fornisce il seguente output:
"Book Pen-Copy Chair"
Qui, l'output contiene un '-' tra Pen e Copy a causa dell'uso di collapse, che crea la separazione tra due diversi vettori. Al contrario, sep include uno spazio (' '), che separa i singoli elementi.
Consideriamo l'esempio con paste0()
paste0() utilizza internamente l'argomento sep = '' cioè senza spazi, ed è usata per la sua efficienza.
state.name <- paste0('Mary','l','and')
print(state.name)
L'output del codice sopra è riportato sotto: tutti i caratteri sono fusi in uno, e non c'è alcuno spazio introdotto da sep.
"Maryland"
Trovare la lunghezza
nchar(char,type, allowNA,keepNA) - Trova il numero totale di caratteri in un dato vettore.
nzchar(char) - Restituisce TRUE se x non è vuota e FALSE se contiene una stringa vuota.
Gli argomenti di paste sopra indicano:
- char - Indica un vettore di caratteri.
- type - Indica uno tra tre tipi, cioè "width", "chars", "bytes".
- allowNA - Indica un valore logico predefinito FALSE e, nel caso in cui il risultato non possa essere calcolato, non genera un errore ma restituisce NA.
- keepNA - Indica un valore logico predefinito FALSE: mapperà il valore mancante a 2 e nzchar() restituirà TRUE, ma entrambi mapperanno a TRUE anche nel caso di valori mancanti.
Nell'esempio seguente determiniamo la lunghezza di un vettore di caratteri.
my.char = nchar("hello")
print(my.char)
L'esempio sopra restituisce '5' come output perché sono presenti cinque caratteri nel vettore.
Per l'esempio di utilizzo di nzchar() guarda il codice seguente:
new.char = nzchar("monkey")
print(new.char)
Il codice sopra restituisce il valore logico 'TRUE' perché 'new.char' non è una stringa vuota.
my.char = nzchar("")
print(my.char)
Il codice sopra restituisce il valore logico 'FALSE' perché 'my.char' è una stringa vuota.
Conversione in maiuscolo e minuscolo
toupper(char) - Converte tutti i caratteri presenti in maiuscolo.
tolower(char) - Converte tutti i caratteri presenti in minuscolo.
Vediamo l'esempio per la conversione in maiuscolo.
my.var = toupper("I'm changed to upper case")
print(my.var)
Il codice sopra fornisce l'output seguente, in cui ogni carattere presente nella variabile 'my.var' è stato convertito in maiuscolo.
"I'M CHANGED TO UPPER CASE"
Vediamo l'esempio per la conversione in minuscolo.
my.var = tolower("I'm changed to lower case")
print(my.var)
Il codice sopra fornisce l'output seguente, in cui ogni carattere presente nella variabile 'my.var' è stato convertito in minuscolo.
""i'm changed to lower case""
Estrazione e sostituzione di una stringa di caratteri
substr(char, start, stop): Estrazione e sostituzione di una stringa di caratteri.
Gli argomenti sopra indicano:
- char - Indica una stringa di caratteri.
- start - Indica un intero che specifica il valore iniziale corrispondente da restituire.
- stop - Indica un intero che specifica il valore finale corrispondente da restituire.
Vediamo un altro esempio in cui i caratteri vengono estratti.
final.value <- substring('Remaining', 3, 9)
print(final.value)
Nel codice sopra, 'Remaining' è una stringa in cui il primo indice è 'R', indicizzato con l'intero 1. L'ultimo carattere è g con indice intero 9.
Il codice sopra mostra l'output sottostante: il valore iniziale è l'intero 3, che ha come carattere corrispondente ' m ' in 'Remaining'. Allo stesso modo, gli altri caratteri 'ainin' fino all'intero 9, che è incluso con il carattere corrispondente 'g', vengono stampati.
"maining"
Vediamo un altro esempio in cui i caratteri vengono sostituiti.
y = "Remaining"
substring(y, 3, 5) <- "der"
print(y)
Il codice sopra mostra l'output in cui il valore intero dall'indice 3 al 5 con il valore di carattere corrispondente in y viene sostituito da 'der'.
"Rederning"
substring(char, first, last = 1000000L): Estrazione o sostituzione di una stringa di caratteri.
Gli argomenti sopra indicano:
- char - Indica una stringa di caratteri.
- first - Indica un intero che specifica il primo valore corrispondente da restituire.
- last - Indica un intero che specifica l'ultimo valore corrispondente da restituire e ha valore predefinito 1000000L.
my.value <- substring('Remaining', 3, 8)
print(my.value)
Il codice sopra mostra l'output sottostante: il valore iniziale è l'intero 3, che ha come carattere corrispondente ' m ' in 'Remaining'. Allo stesso modo, gli altri caratteri fino all'intero 8, che è incluso con il carattere corrispondente 'n', vengono stampati.
"mainin"
Vediamo un altro esempio in cui i caratteri vengono sostituiti.
y = "newcharacter"
substring(y, 6,9) <- "???"
print(y)
Il codice sopra mostra l'output in cui il valore intero dall'indice 6 al 9 con il valore di carattere corrispondente in y viene sostituito da '???'.
"newch???cter"
Formattazione delle stringhe
format(char,width,scientific,justify,nsmall,digits): Converte un vettore di interi e caratteri in un formato comunemente usato.
Gli argomenti sopra indicano:
- char - può essere un vettore di interi o di caratteri.
- width - indica una larghezza minima della stringa prodotta.
- scientific - predefinito FALSE, ma usare TRUE per la notazione scientifica.
- justify - predefinito none, ma può visualizzare le stringhe a "right", "left" e "center".
- nsmall - indica il numero totale di cifre dopo la virgola decimale.
- digits - indica il numero totale di cifre prima e dopo la virgola decimale.
Prendiamo un esempio di formattazione delle stringhe in notazione scientifica.
my.var <- format(c(2, 19.267), scientific = TRUE)
print(my.var)
Il codice sopra mostra l'output espresso in notazione scientifica o esponenziale
"2.0000e+00" "1.9267e+01"
L'output "1.9267e+01" = 1,9267 × 10 (alla potenza di 1) = 1,9267×10 = 19,267.
Prendiamo un esempio di formattazione usando nsmall.
my.var <- format(92.56656577, nsmall = 6)
print(my.var)
Il codice sopra fornisce l'output seguente, in cui sono incluse 6 cifre dopo la virgola decimale.
"92.566565"
Prendiamo un esempio di formattazione usando digits.
my.var <- format(102.848793834, digits = 7)
print(my.var)
Il codice sopra fornisce l'output seguente, in cui le cifre prima della virgola decimale sono incluse insieme a quelle dopo la virgola fino a raggiungere il totale richiesto.
"102.8488"
Sette cifre sono incluse nell'output: l'ultima dovrebbe essere 7, ma a causa del numero che la precede, cioè 9, che è maggiore di 7, viene arrotondata a 8. In parole semplici, avviene un arrotondamento.
Prendiamo un esempio di formattazione usando l'allineamento a destra.
my.var <- format('Running', justify = 'r',width = 9)
print(my.var)
Il codice sopra fornisce l'output seguente, in cui la stringa 'Running' è allineata a destra con uno spazio di larghezza.
" Running"
Prendiamo un esempio di formattazione usando l'allineamento centrato.
my.var <- format('Running', justify = 'c',width = 12)
print(my.var)
Il codice sopra fornisce l'output seguente, in cui la stringa 'Running' è centrata con uno spazio di larghezza tra destra e sinistra.
" Running "
Congratulazioni
Congratulazioni, sei arrivato alla fine di questo tutorial!
Hai imparato le stringhe in R: le loro regole, la concatenazione, le proprietà essenziali, l'estrazione e la sostituzione di una stringa di caratteri e la formattazione di una stringa.
Se vuoi saperne di più su R, segui il corso Introduzione a R di DataCamp.
Dai un'occhiata al nostro tutorial Tipi di dati in R.

