Slučování a Restrukturalizace dat (od „R v Akci“)

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



+