Home Forum Fuoritema problemi con R STUDIO

Questo argomento contiene 4 risposte, ha 2 partecipanti, ed è stato aggiornato da Francesco Cabiddu Francesco Cabiddu 2 anni, 3 mesi fa.

Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #5679

    DANIEL
    Partecipante

    BUONGIORNO,
    AVENDO INIZIATO DA POCO A FAMILIARIZZARE CON IL PROGRAMMA R VORREI PORVI UNA DOMANDA:
    HO PRESO DEI DATI DA UNA TABELLA E LI HO SCRITTI SU R COME VETTORI HO POI CREATO UN DATAFRAME… QUANDO POI HO DOVUTO FARE LA DISTRIBUZIONE DI FREQUENZE DI UNA PARTICOLARE COLONNA DEL DATAFRAME MI ERO ACCORTO CHE I LIVELLI ERANO 3 OVVERO (CELIBE,CELIBE,CONIUGE)… HO MODIFICATO ALLORA IL CODICE DIRETTAMENTE QUANDO AVEVO SCRITTO IL VETTORE STATO_CIVILE=factor(c(“”,…..,””),levels=c(“CELIBE”,”CONIUGE”)… A QUEL PUNTO AVEVO FATTO DI NUOVO RUN CON I DATI MODIFICATI… POI HO USATO df$’STATO_CIVILE’ E A QUEL PUNTO I LIVELLI ERANO SI GIUSTI CON CELIBE E CONIUGE MA NEI DATI AVEVO UN DATO MANCANTE NA DOVE ALL’INIZIO AVEVO IL TERZO LIVELLO CELIBE… COME FACCIO AD ASSEGNARE IL VALORE NA CON CELIBE MANTENENDO COMUNQUE I LIVELLI UGUALI… VI RINGRAZIO ANTICIPATAMENTE

    #5681
    Francesco Cabiddu
    Francesco Cabiddu
    Amministratore del forum

    Ciao Daniel,
    Giusto per farmi capire meglio le caratteristiche del tuo dataset, potresti incollare qui il risultato dei comandi str(df) e unique(df$STATO_CIVILE)? (prima di utilizzare la funzione factor() e ottenere gli NA)

    #5683

    DANIEL
    Partecipante

    str(df)
    ‘data.frame’: 25 obs. of 7 variables:
    $ GENERE : Factor w/ 2 levels “F”,”M”: 2 2 1 1 2 1 1 2 2 2 …
    $ ANNO : num 85 88 87 83 81 80 70 84 90 76 …
    $ STATO CIVILE : Factor w/ 2 levels “CONIUGE”,”CELIBE”: 1 NA 1 1 1 1 2 2 2 2 …
    $ TITOLO DI STUDIO: Factor w/ 3 levels “DIPLOMA”,”DOTTORATO”,..: 1 1 3 3 3 1 1 3 3 3 …
    $ RAL : num 25379 18435 28523 18676 36955 …
    $ DURATA : num 5 5 15 25 15 30 5 25 25 5 …
    $ RATA : num 1086 1129 517 1159 853 …
    >

    #5684

    DANIEL
    Partecipante

    unique(df$STATO_CIVILE)
    NULL

    #5685
    Francesco Cabiddu
    Francesco Cabiddu
    Amministratore del forum

    Ciao Daniel,
    quello che sospetto sia successo è che quel dato NA non corrispondesse a “CELIBE” prima che il vettore STATO_CIVILE venisse convertito in fattore. Può darsi che ci fosse una differenza nella stringa di testo (e.g. non tutte le lettere maiuscole [“cELIBE”] oppure uno spazio di troppo all’inizio o fine della parola [“CELIBE “]).

    In ogni caso per riportare gli NA presenti nel vettore al valore “CELIBE” puoi fare così:

    
    # sostituire i nomi con nome del dataframe e nome del vettore rispettivamente
    nome_dataframe$nome_vettore[is.na(nome_dataframe$nome_vettore)] <- "CELIBE"
    
    
Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)

Devi essere loggato per rispondere a questa discussione.