Datatransformationer
Struktureret data
Som nævnt arbejder Datatidy med datasæt som indeholder data i rækker og kolonner, men ofte indeholder en datakilde struktureret (eller hierarkisk) data, fx JSON eller XML.
For at kunne behandle JSON i Datatidy er det indledningsvist nødvendigt at udfolde strukturen så man får data opsat i rækker og kolonner. Når man har forædlet data via sin opskrift skal man kunne folde data sammen til struktureret data med samme struktur som oprindeligt.
Til dette formål, ud- og sammenfoldning af data, findes to datatransformationer:
Expand columns
og Collapse columns
.
Eksempel: GeoJSON
I følgende
GeoJSON-datakilde
ønsker vi at oversætte vindretning (wind_direction
) til kompaspunkter (1 → N,
2 → E, 3 → S, 4 → W):
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"name": "Dokk1",
"wind_direction": 2
},
"geometry": {
"type": "Point",
"coordinates": [
10.2108272,
56.1539574
]
}
},
{
"type": "Feature",
"properties": {
"name": "Aarhus Rådhus",
"wind_direction": 3
},
"geometry": {
"type": "Point",
"coordinates": [
10.2008397,
56.1525791
]
}
}
]
}
Det første skridt er at udfolde features
så vi får to rækker:
type | features |
---|---|
FeatureCollection | {“type”: “Feature”, “properties”: {“name”: “Dokk1”, “wind_direction”: 2}, “geometry”: {“type”: “Point”, “coordinates”: [10.2108272, 56.1539574]}} |
FeatureCollection | {“type”: “Feature”, “properties”: {“name”: “Aarhus Rådhus”, “wind_direction”: 3}, “geometry”: {“type”: “Point”, “coordinates”: [10.2008397, 56.1525791]}} |
Bemærk at værdien i type
gentages i begge rækker – det er der en god teknisk forklaring på som kommer lidt senere.