Datan Muuntaminen
Pyyhkäise näyttääksesi valikon
Datan muuntaminen on olennainen vaihe raakadatan valmistelussa analysointia varten. Siihen kuuluu muuttujien muokkaaminen, lisääminen tai uudelleenkoodaus, jotta datasta tulee merkityksellisempää ja valmista analyysiin.
Uusien sarakkeiden luominen
Yleinen muunnos on laskea uusia mittareita olemassa olevista sarakkeista. Esimerkiksi voidaan laskea hinta per kilometri arvioidakseen, kuinka kustannustehokas ajoneuvo on.
Base R
Uuden sarakkeen voi luoda käyttämällä $-operaattoria määrittämään sarakkeen nimi ja antamalla sille arvot.
df$price_per_km <- df$selling_price / df$km_driven
head(df)
dplyr
Uusien sarakkeiden lisääminen mutate()-funktiolla. mutate()-funktion sisällä määritellään uuden sarakkeen nimi ja laskentatapa.
df <- df %>%
mutate(price_per_km = selling_price / km_driven)
Tekstipohjaisten numeeristen tietojen muuntaminen ja käsittely
Reaaliaineistoissa numeerista tietoa tallennetaan usein tekstinä, jossa on mukana ei-numeerisia merkkejä. Esimerkiksi moottorin tehoarvot voivat esiintyä muodossa "68 bhp", jotka täytyy puhdistaa ja muuntaa ennen analysointia.
Base R
gsub()-funktiolla poistetaan ei-toivotut tekstit ja as.numeric()-funktiolla muunnetaan tulos numeeriseksi. Muunnoksen jälkeen voidaan tehdä lisämuunnoksia, kuten jarruvoiman (bhp) muuntaminen kilowateiksi.
df$max_power <- as.numeric(gsub(" bhp", "", df$max_power))
df$max_power_kw <- df$max_power * 0.7457 # convert to kilowatts
dplyr
Sama prosessi voidaan virtaviivaistaa mutate()-kutsun sisällä. Tekstin korvaaminen, tyyppimuunnos ja uuden sarakkeen luominen voidaan yhdistää yhdeksi vaiheeksi, mikä tekee koodista selkeämpää ja helpommin luettavaa.
df <- df %>%
mutate(
max_power = as.numeric(gsub(" bhp", "", max_power)),
max_power_kw = max_power * 0.7457
)
Datan kategorisointi
Uusia kategorisia muuttujia voidaan luoda ryhmittelemällä jatkuvia arvoja merkityksellisiin kategorioihin. Esimerkiksi autot voidaan luokitella matala, keski tai korkea hintaluokkiin myyntihinnan perusteella.
Base R
Tämä voidaan tehdä sisäkkäisillä ifelse()-lauseilla. Jokainen ehto tarkistetaan järjestyksessä ja arvo asetetaan sen mukaisesti.
df$price_category <- ifelse(df$selling_price < 300000, "Low",
ifelse(df$selling_price < 700000, "Medium", "High"))
dplyr
Voit käyttää case_when()-funktiota sisäkkäisten if-else-lauseiden sijaan. Tämä mahdollistaa useiden ehtojen kirjoittamisen selkeässä ja luettavassa muodossa.
df <- df %>%
mutate(price_category = case_when(
selling_price < 300000 ~ "Low",
selling_price < 700000 ~ "Medium",
TRUE ~ "High"
))
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme