Home Forum Statistica con R Controllo dei dati di una colonna di un dataframe e omogeneizzazione dei dati.

This topic contains 2 replies and has 2 voices.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #4969

    chimicobiotec1985
    Participant

    Buonasera sto preparando un esame in cui devo portare un progetto realizzato con RStudio. Mi trovo davanti ad un punto: devo controllare ad esempio la colonna altezza di un dataframe e controllare se tutti i dati sono espressi in cm. In poche parole devo controllare se i numeri sono interi o decimali. Il controllo posso farlo ovviamente con il comando str. Ora avrei due strade o la modifica manuale del file csv, oppure non sarebbe possibile fare ad esempio usare if e qualche comando per controllare la colonna e ad esempio moltiplicare per 100 i dati che non sono interi?
    Ho provato a trasformare la colonna che era in formato factor w/ prima in char e poi in numeric e poi in integer e giustamente 1,75 mi diventava 1.
    Come posso uscirne?
    Grazie per l’attenzione.
    Angelo

    #4971

    Ciao Angelo,
    correggimi se l’esempio che sto facendo non è quello che ti serve.

    Partendo da una condizione in cui hai una colonna fattore di un dataframe con valori di altezza espressi sia in cm che in metri:

    
    df <- data.frame(altezza = c("1.76", "155", "180", "1.89"))
    df$altezza <- factor(df$altezza)
    
    df$altezza
    [1] 1.76 155  180  1.89
    Levels: 1.76 1.89 155 180
    

    Si potrebbero moltiplicare per 100 i valori minori di un valore di riferimento (tipo 10 perché è difficile che qualcuno sia più basso di 10 cm):

    
    df$altezza <- as.numeric(as.character(df$altezza))
    df$altezza <- ifelse(test=df$altezza < 10, yes=df$altezza*100, no=df$altezza)
    
    df$altezza
    [1] 176 155 180 189
    

    In questo modo ti ritroveresti la colonna trasformata in numerica, con i valori tutti espressi in cm

    #4973

    chimicobiotec1985
    Participant

    La ringrazio è quello che pensavo perchè se ovviamente non mettevo la condizione che mi escludesse dalla moltiplicazione i valori esatti mi moltiplicava per 100 tutta la colonna.

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.