následující úvodní příspěvek je určen pro nové uživatele R. zabývá se restrukturalizace dat: co to je a jak ji provádět pomocí base R funkce a {přetvořit} balíček.
toto je host článek Dr. Robert I. Kabacoff, zakladatel (jeden z) první on-line R tutoriály webové stránky: Quick-R. Kabacoff nedávno vydal knihu „R v Akci“, poskytuje podrobné průchozí pro R jazyce na základě různých příkladů pro ilustraci R je funkce (manipulace s daty, statistické metody, grafiky, a tak dále…). Předchozí hostující příspěvek Kabacoffa představil data.rám objekty v R.
Pro čtenáře tohoto blogu, tam je 38% slevu z „R v Akci“ kniha (stejně jako všechny ostatní knihy, pBooks a MEAPs v Manning publishing house), jednoduše pomocí kódu rblogg38 při dosažení pokladny.
Pojďme teď mluvit o Slučování a Restrukturalizace dat v R:
Slučování a Restrukturalizace
R poskytuje řadu výkonných metod pro agregaci a přetváří data. Když agregujete data, nahradíte skupiny pozorování souhrnnými statistikami založenými na těchto pozorováních. Když přetváříte data, změníte strukturu (řádky a sloupce) určující, jak jsou data organizována. Tento článek popisuje různé metody pro plnění těchto úkolů.
použijeme mtcars datový rámec, který je součástí základní instalace. R. Tento datový soubor, extrahuje z Motor Trend magazine (1974) popisuje design a funkční vlastnosti (počet válců, posunutí, koní, mpg, a tak dále) pro 34 automobilů. Další informace o datovém souboru naleznete v nápovědě (mtcars).
transpozice
transpozice (reverzní řádky a sloupce) je možná nejjednodušší metoda přetvoření datové sady. Pomocí funkce t() transponujte matici nebo datový rámec. V druhém případě se názvy řádků stávají názvy proměnných (sloupců). Příklad je uveden v dalším seznamu.
Výpis 1 Provedení dataset
Výpis 1 používá podmnožinu mtcars údajů za účelem zachování prostoru na stránce. Uvidíte flexibilnější způsob transponování dat, když se podíváme na balíček přetvořit později v tomto článku.
agregace dat
je relativně snadné sbalit data v R pomocí jedné nebo více proměnných a definované funkce. Formát je
1 |
aggregate(x, by, FUN) |
kde x je datový objekt, aby se zhroutil, je seznam proměnných, které budou přešel tvoří nová pozorování, a ZÁBAVA je skalární funkce použité pro výpočet souhrnných statistik, které budou tvořit nové hodnoty pozorování.
Jako příklad, budeme agregovat mtcars údaje o počtu válců a ozubených kol, vrací znamená, že na každé z číselných proměnných (viz následující seznam).
Výpis 2 agregačních dat
v těchto výsledcích, skupina.1 představuje počet válců (4, 6 nebo a skupiny.2 představuje počet rychlostních stupňů (3, 4 nebo 5). Například automobily se 4 válci a 3 rychlostními stupni mají průměr 21,5 mil na galon (mpg).
pokud používáte funkci aggregate (), proměnné by musí být v seznamu (i když existuje pouze jedna). Můžete deklarovat vlastní název pro skupiny ze seznamu, například pomocí by = list (Group.cyl=cyl, skupina.gears=gear).
zadanou funkcí může být libovolná vestavěná nebo uživatelsky poskytovaná funkce. To dává souhrnnému příkazu velkou moc. Ale pokud jde o moc, nic nepřekoná balíček přetvoření.
balíček reshape
balíček reshape je nesmírně všestranný přístup k restrukturalizaci i agregaci datových souborů. Vzhledem k této všestrannosti, to může být trochu náročné se učit.
projdeme procesem pomalu a použijeme malou datovou sadu, aby bylo jasné, co se děje. Protože reshape není součástí standardní instalace R, budete ji muset nainstalovat jednou pomocí instalace.balíčky („přetvořit“).
v podstatě“ roztavíte “ data tak, aby každý řádek byl jedinečnou kombinací ID-proměnné. Pak“ obsadíte “ roztavená data do jakéhokoli tvaru, který si přejete. Během obsazení, můžete agregovat data s libovolnou funkcí, kterou si přejete. Datový soubor, se kterým budete pracovat, je uveden v tabulce 1.
Tabulka 1 původní dataset (mydata)
ID |
Čas |
X1 |
X2 |
1 | 1 | 5 | 6 |
1 | 2 | 3 | 5 |
2 | 1 | 6 | 1 |
2 | 2 | 2 | 4 |
V tomto souboru měření jsou hodnoty v posledních dvou sloupce (5, 6, 3, 5, 6, 1, 2, a 4). Každé měření je jednoznačně identifikováno kombinací proměnných ID (v tomto případě ID, čas a to, zda je měření na X1 nebo X2). Například naměřená hodnota 5 v prvním řádku je jednoznačně identifikována vědomím, že je z pozorování (ID) 1, v čase 1 a na proměnné X1.
Tání
Když budete tát dataset, restrukturalizovat je do formátu, kde každé měřené veličiny je na vlastním řádku, a spolu s ID proměnné potřebné jednoznačně identifikovat. Pokud si rozpustíme údaje z tabulky 1, pomocí následující kód
12 |
library(reshape)md <- melt(mydata, id=(c("id", "time"))) |
můžete skončit s struktury je uvedeno v tabulce 2.
Tabulka 2 rozpuštěné dataset
ID |
Čas |
Variabilní |
Hodnota |
1 | 1 | X1 | 5 |
1 | 2 | X1 | 3 |
2 | 1 | X1 | 6 |
2 | 2 | X1 | 2 |
1 | 1 | X2 | 6 |
1 | 2 | X2 | 5 |
2 | 1 | X2 | 1 |
2 | 2 | X2 | 4 |
Všimněte si, že musíte zadat proměnné potřebné k jednoznačné identifikaci každého měření (jméno a Čas) a že proměnná označující měření názvy proměnných (X1 nebo X2), je automaticky vytvořena pro vás.
Nyní, když máte data v roztavené podobě, můžete je přepracovat do libovolného tvaru pomocí funkce cast ().
Obsazení
obsazení() funkce spustí s rozpuštěným data a přetváří jej pomocí vzorce, který poskytnete, a (volitelně) funkce používané k agregaci údajů. Formát je
1 |
newdata <- cast(md, formula, FUN) |
Kde md je rozpuštěné data, vzorec popisuje požadovaný konečný výsledek, a ZÁBAVA je (volitelné) agregace funkce. Vzorec má podobu
1 |
rowvar1 + rowvar2 + … ~ colvar1 + colvar2 + … |
V tomto vzorci, rowvar1 + rowvar2 + … definovat sadu přešel proměnných, které určují řádky, a colvar1 + colvar2 + … definovat sadu přešel proměnné, které definují sloupce. Viz příklady na obrázku 1. (pro zvětšení klikněte na obrázek)
Obrázek 1 Přetváření dat s tát() a cast() funkce
Protože vzorce na pravé straně (d, e, a f) se nezahrnují funkce, data jsou přepracována. Naproti tomu příklady na levé straně (a, b A c) specifikují průměr jako agregační funkci. Data jsou tedy nejen přetvořena, ale také agregována. Například (a) dává prostředky na X1 a X2 v průměru v průběhu času pro každé pozorování. Příklad (b) udává průměrné skóre X1 a X2 v čase 1 a čase 2, zprůměrováno na pozorování. V (c) Máte průměrné skóre pro každé pozorování v čase 1 a čase 2, v průměru nad X1 a X2.
jak vidíte, flexibilita poskytovaná funkcemi taveniny() a obsazení() je úžasná. Existuje mnoho případů, kdy budete muset před analýzou přetvořit nebo agregovat svá data. Například, budete obvykle muset umístit vaše data v tzv. dlouhém formátu připomínající tabulka 2 při analýze opakovaných měření dat (data, kde je více opatření jsou zaznamenány pro každé pozorování).
Shrnutí
Kapitola 5 R v Akci recenze mnoho desítek matematické, statistické a pravděpodobnostní funkce, které jsou užitečné pro manipulaci s daty. V tomto článku jsme stručně prozkoumali několik způsobů agregace a restrukturalizace dat.
tento článek se poprvé objevil jako kapitola 5.6 z knihy“ R v akci “ a je publikován se svolením Nakladatelství Manning. Další knihy v této vážné, které by vás mohly zajímat jsou (viz začátek tohoto příspěvku pro slevový kód):
- Strojové Učení v Akci Peter Harrington
- Gnuplot v Akci (Pochopení Dat s Grafy) Philipp. K. Janert