Datatransformation
Datatransformation är ett avgörande steg i att förbereda rådata för analys. Det innebär att modifiera, lägga till eller omkoda variabler för att göra datan mer meningsfull och redo för analys.
Skapa nya kolumner
En vanlig transformation är att beräkna nya mått från befintliga kolumner. Till exempel kan du vilja beräkna pris per kilometer för att utvärdera hur kostnadseffektiv ett fordon är.
Base R
Du kan skapa en ny kolumn genom att använda $
-operatorn för att definiera dess namn och tilldela värden till den.
df$price_per_km <- df$selling_price / df$km_driven
head(df)
dplyr
Nya kolumner kan läggas till med funktionen mutate()
. Inuti mutate()
anger du namnet på den nya kolumnen och definierar hur den ska beräknas.
df <- df %>%
mutate(price_per_km = selling_price / km_driven)
Konvertering och transformering av textbaserad numerisk data
I verkliga datamängder lagras numerisk information ofta som text kombinerad med icke-numeriska tecken. Till exempel kan motoreffektvärden visas som "68 bhp", vilket måste rensas och konverteras innan analys.
Base R
Du kan använda gsub()
för att ta bort oönskad text och sedan använda as.numeric()
för att konvertera resultatet till siffror. Efter konvertering kan ytterligare transformationer utföras, såsom att omvandla brake horsepower (bhp) till kilowatt.
df$max_power <- as.numeric(gsub(" bhp", "", df$max_power))
df$max_power_kw <- df$max_power * 0.7457 # convert to kilowatts
dplyr
Samma process kan förenklas med ett anrop till mutate()
. Du kan kombinera textersättning, typkonvertering och skapande av nya kolumner i ett enda steg, vilket gör koden renare och lättare att läsa.
df <- df %>%
mutate(
max_power = as.numeric(gsub(" bhp", "", max_power)),
max_power_kw = max_power * 0.7457
)
Kategorisering av data
Nya kategoriska variabler kan skapas genom att gruppera kontinuerliga värden i meningsfulla kategorier. Till exempel kan bilar klassificeras i Låg, Medel eller Hög prisklass baserat på deras försäljningspris.
Base R
Detta kan göras med nästlade ifelse()
-satser. Varje villkor kontrolleras i ordning och värdet tilldelas därefter.
df$price_category <- ifelse(df$selling_price < 300000, "Low",
ifelse(df$selling_price < 700000, "Medium", "High"))
dplyr
Du kan använda funktionen case_when()
som ett alternativ till nästlade if-else-satser. Detta möjliggör att flera villkor kan skrivas på ett tydligt och läsbart sätt.
df <- df %>%
mutate(price_category = case_when(
selling_price < 300000 ~ "Low",
selling_price < 700000 ~ "Medium",
TRUE ~ "High"
))
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Svep för att visa menyn
Datatransformation är ett avgörande steg i att förbereda rådata för analys. Det innebär att modifiera, lägga till eller omkoda variabler för att göra datan mer meningsfull och redo för analys.
Skapa nya kolumner
En vanlig transformation är att beräkna nya mått från befintliga kolumner. Till exempel kan du vilja beräkna pris per kilometer för att utvärdera hur kostnadseffektiv ett fordon är.
Base R
Du kan skapa en ny kolumn genom att använda $
-operatorn för att definiera dess namn och tilldela värden till den.
df$price_per_km <- df$selling_price / df$km_driven
head(df)
dplyr
Nya kolumner kan läggas till med funktionen mutate()
. Inuti mutate()
anger du namnet på den nya kolumnen och definierar hur den ska beräknas.
df <- df %>%
mutate(price_per_km = selling_price / km_driven)
Konvertering och transformering av textbaserad numerisk data
I verkliga datamängder lagras numerisk information ofta som text kombinerad med icke-numeriska tecken. Till exempel kan motoreffektvärden visas som "68 bhp", vilket måste rensas och konverteras innan analys.
Base R
Du kan använda gsub()
för att ta bort oönskad text och sedan använda as.numeric()
för att konvertera resultatet till siffror. Efter konvertering kan ytterligare transformationer utföras, såsom att omvandla brake horsepower (bhp) till kilowatt.
df$max_power <- as.numeric(gsub(" bhp", "", df$max_power))
df$max_power_kw <- df$max_power * 0.7457 # convert to kilowatts
dplyr
Samma process kan förenklas med ett anrop till mutate()
. Du kan kombinera textersättning, typkonvertering och skapande av nya kolumner i ett enda steg, vilket gör koden renare och lättare att läsa.
df <- df %>%
mutate(
max_power = as.numeric(gsub(" bhp", "", max_power)),
max_power_kw = max_power * 0.7457
)
Kategorisering av data
Nya kategoriska variabler kan skapas genom att gruppera kontinuerliga värden i meningsfulla kategorier. Till exempel kan bilar klassificeras i Låg, Medel eller Hög prisklass baserat på deras försäljningspris.
Base R
Detta kan göras med nästlade ifelse()
-satser. Varje villkor kontrolleras i ordning och värdet tilldelas därefter.
df$price_category <- ifelse(df$selling_price < 300000, "Low",
ifelse(df$selling_price < 700000, "Medium", "High"))
dplyr
Du kan använda funktionen case_when()
som ett alternativ till nästlade if-else-satser. Detta möjliggör att flera villkor kan skrivas på ett tydligt och läsbart sätt.
df <- df %>%
mutate(price_category = case_when(
selling_price < 300000 ~ "Low",
selling_price < 700000 ~ "Medium",
TRUE ~ "High"
))
Tack för dina kommentarer!