Valori univoci
Fa parte della sezione Logica e flusso del percorso R di Coddy. Lezione 12 di 64.
R non ha un tipo set separato: un set è un vettore senza valori ripetuti. unique() rimuove i duplicati e mantiene la prima occorrenza di ogni valore, nell’ordine originale.
tags <- c("r", "stats", "r", "data", "stats")
print(unique(tags))
print(length(unique(tags)))Output:
[1] "r" "stats" "data"
[1] 3duplicated() restituisce TRUE per ogni valore che era già comparso in precedenza nel vettore. La prima occorrenza è FALSE:
ids <- c(7, 3, 7, 9, 3)
print(duplicated(ids))
print(ids[duplicated(ids)])Output:
[1] FALSE FALSE TRUE FALSE TRUE
[1] 7 3Entrambe le funzioni confrontano valori esatti, quindi "R" e "r" sono diversi. Normalizza prima il testo quando la distinzione tra maiuscole e minuscole non deve contare:
langs <- c("R", "python", "r", "Python")
print(length(unique(langs)))
print(unique(tolower(langs)))Output:
[1] 4
[1] "r" "python"Anche unique() funziona con i numeri, e sort(unique(x)) elenca i valori distinti in ordine crescente. sum(duplicated(x)) conta quanti elementi sono ripetuti:
rolls <- c(4, 2, 6, 2, 4, 4)
print(sort(unique(rolls)))
print(sum(duplicated(rolls)))Output:
[1] 2 4 6
[1] 3Sfida
FacileCompleta count_distinct(tags). Restituisci il numero di tag distinti ignorando le maiuscole e le minuscole: R e r vengono conteggiati una sola volta.
Il codice fornito legge i tag da una riga separata da virgole e stampa il numero restituito.
Provalo tu
count_distinct <- function(tags) {
# Escribe tu código aquí
0
}
# Código de entrada/salida proporcionado: mantenlo tal como está
input <- suppressWarnings(readLines(file("stdin")))
cat(count_distinct(strsplit(input[1], ",")[[1]]), sep = "\n")
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Sottostringhe con substr()Formattazione con sprintf()Dividere e unireRicerca nelle stringheSostituzione del testoRipasso - Generatore di nomi utente4Matrici
Creazione di matriciIndicizzazione delle matriciRiepiloghi di righe e colonneOperazioni aritmetiche con le matriciRipasso - Schema dei posti a sedere10Flusso di controllo avanzato
La funzione switch()ifelse() vettorialerepeat e breakFunzioni ricorsiveRiepilogo - Classificatore di voti2Ricerche chiave-valore
Ricerche in vettori con nomiControllare le chiaviAggiungere e rimuovere chiaviIterare sui nomiRiepilogo - Sportello titoli5Progetto - Registro dei voti
Aggiungere studentiRegistrare i voti8Ordinamento e raggruppamento
Ordinare i vettoriOrdinare in base a una chiaveRaggruppare con split()Riepiloghi dei gruppiRipasso - Classifica3Insiemi e conteggio
Valori univociOperazioni sugli insiemiTest di appartenenzaConteggio con table()Riepilogo - Ospiti dell’evento6Le funzioni come valori
Funzioni anonimePassare funzioniRestituire funzioniClosure con statoRiepilogo - Regole di sconto9DataFrame
Creare DataFrameColonne e righeFiltrare le righeAggiungere e ordinareRiepilogo - Report delle vendite12Progetto - Gestione delle spese
Registrare le speseSpesa totaleEsercitati da solo: Compilatore R online