Datatransformation
Datatransformation er et afgørende trin i forberedelsen af rådata til analyse. Det indebærer at ændre, tilføje eller omkode variabler for at gøre dataene mere meningsfulde og klar til analyse.
Oprettelse af nye kolonner
En almindelig transformation er at beregne nye målinger ud fra eksisterende kolonner. For eksempel kan du ønske at beregne prisen pr. kilometer for at vurdere, hvor omkostningseffektiv et køretøj er.
Base R
Du kan oprette en ny kolonne ved at bruge $
-operatoren til at definere dens navn og tildele værdier til den.
df$price_per_km <- df$selling_price / df$km_driven
head(df)
dplyr
Nye kolonner kan tilføjes ved hjælp af funktionen mutate()
. Inde i mutate()
angives navnet på den nye kolonne samt hvordan den skal beregnes.
df <- df %>%
mutate(price_per_km = selling_price / km_driven)
Konvertering og transformation af tekstbaserede numeriske data
I virkelige datasæt gemmes numerisk information ofte som tekst kombineret med ikke-numeriske tegn. For eksempel kan motoreffektværdier fremstå som "68 bhp", hvilket skal renses og konverteres før analyse.
Base R
Du kan bruge gsub()
til at fjerne uønsket tekst og derefter anvende as.numeric()
for at konvertere resultatet til tal. Efter konvertering kan yderligere transformationer udføres, såsom at omregne bremsehestekræfter (bhp) til kilowatt.
df$max_power <- as.numeric(gsub(" bhp", "", df$max_power))
df$max_power_kw <- df$max_power * 0.7457 # convert to kilowatts
dplyr
Den samme proces kan forenkles i et mutate()
-kald. Du kan kombinere tekstudskiftning, typekonvertering og oprettelse af nye kolonner i ét trin, hvilket gør koden mere overskuelig og lettere at læse.
df <- df %>%
mutate(
max_power = as.numeric(gsub(" bhp", "", max_power)),
max_power_kw = max_power * 0.7457
)
Kategorisering af data
Du kan oprette nye kategoriske variabler ved at gruppere kontinuerte værdier i meningsfulde kategorier. For eksempel kan biler klassificeres i Lav, Mellem eller Høj prisklasser baseret på deres salgspris.
Base R
Dette kan gøres med indlejrede ifelse()
-udtryk. Hver betingelse kontrolleres i rækkefølge, og værdien tildeles derefter.
df$price_category <- ifelse(df$selling_price < 300000, "Low",
ifelse(df$selling_price < 700000, "Medium", "High"))
dplyr
Du kan bruge funktionen case_when()
som en erstatning for indlejrede if-else-sætninger. Dette gør det muligt at skrive flere betingelser i et overskueligt og læsbart format.
df <- df %>%
mutate(price_category = case_when(
selling_price < 300000 ~ "Low",
selling_price < 700000 ~ "Medium",
TRUE ~ "High"
))
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain the difference between using Base R and dplyr for data transformation?
How do I handle non-numeric values when converting columns for analysis?
Can you show more examples of categorizing data using different criteria?
Awesome!
Completion rate improved to 4
Datatransformation
Stryg for at vise menuen
Datatransformation er et afgørende trin i forberedelsen af rådata til analyse. Det indebærer at ændre, tilføje eller omkode variabler for at gøre dataene mere meningsfulde og klar til analyse.
Oprettelse af nye kolonner
En almindelig transformation er at beregne nye målinger ud fra eksisterende kolonner. For eksempel kan du ønske at beregne prisen pr. kilometer for at vurdere, hvor omkostningseffektiv et køretøj er.
Base R
Du kan oprette en ny kolonne ved at bruge $
-operatoren til at definere dens navn og tildele værdier til den.
df$price_per_km <- df$selling_price / df$km_driven
head(df)
dplyr
Nye kolonner kan tilføjes ved hjælp af funktionen mutate()
. Inde i mutate()
angives navnet på den nye kolonne samt hvordan den skal beregnes.
df <- df %>%
mutate(price_per_km = selling_price / km_driven)
Konvertering og transformation af tekstbaserede numeriske data
I virkelige datasæt gemmes numerisk information ofte som tekst kombineret med ikke-numeriske tegn. For eksempel kan motoreffektværdier fremstå som "68 bhp", hvilket skal renses og konverteres før analyse.
Base R
Du kan bruge gsub()
til at fjerne uønsket tekst og derefter anvende as.numeric()
for at konvertere resultatet til tal. Efter konvertering kan yderligere transformationer udføres, såsom at omregne bremsehestekræfter (bhp) til kilowatt.
df$max_power <- as.numeric(gsub(" bhp", "", df$max_power))
df$max_power_kw <- df$max_power * 0.7457 # convert to kilowatts
dplyr
Den samme proces kan forenkles i et mutate()
-kald. Du kan kombinere tekstudskiftning, typekonvertering og oprettelse af nye kolonner i ét trin, hvilket gør koden mere overskuelig og lettere at læse.
df <- df %>%
mutate(
max_power = as.numeric(gsub(" bhp", "", max_power)),
max_power_kw = max_power * 0.7457
)
Kategorisering af data
Du kan oprette nye kategoriske variabler ved at gruppere kontinuerte værdier i meningsfulde kategorier. For eksempel kan biler klassificeres i Lav, Mellem eller Høj prisklasser baseret på deres salgspris.
Base R
Dette kan gøres med indlejrede ifelse()
-udtryk. Hver betingelse kontrolleres i rækkefølge, og værdien tildeles derefter.
df$price_category <- ifelse(df$selling_price < 300000, "Low",
ifelse(df$selling_price < 700000, "Medium", "High"))
dplyr
Du kan bruge funktionen case_when()
som en erstatning for indlejrede if-else-sætninger. Dette gør det muligt at skrive flere betingelser i et overskueligt og læsbart format.
df <- df %>%
mutate(price_category = case_when(
selling_price < 300000 ~ "Low",
selling_price < 700000 ~ "Medium",
TRUE ~ "High"
))
Tak for dine kommentarer!