abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 19:33 | Zajímavý článek Marek Stopka | Komentářů: 14
včera 17:55 | Nová verze

Bylo oznámeno vydání nové verze 3.0.0 a krátce na to opravných verzí 3.0.1 a 3.0.2 nástroje mitmproxy určeného pro vytváření interaktivních MITM proxy pro HTTP a HTTPS komunikaci. Přehled novinek v příspěvku na blogu. Přispělo 56 vývojářů. Aktualizována byla také dokumentace [Hacker News].

Ladislav Hagara | Komentářů: 0
včera 01:11 | Nová verze

Byla vydána nová major verze 3.0 svobodného multiplatformního geografického informačního systému QGIS (Wikipedie). Její kódové jméno je Girona, dle názvu města, ve kterém proběhlo 15. setkání vývojářů QGISu. Přehled novinek i s náhledy a animacemi v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
23.2. 20:33 | Zajímavý článek

Nadace Raspberry Pi vydala sedmašedesáté číslo (pdf) anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači a čtvrté číslo (pdf) časopisu pro kutily HackSpace věnovanému navíc 3D tisku, pájení, řezání nebo i elektronice a IoT.

Ladislav Hagara | Komentářů: 0
23.2. 18:33 | Komunita

Morevna Project, který stojí za řadou svobodného softwaru pro animátory (např. Synfig Studio, RenderChan nebo Papagayo-NG) a svobodnými (CC-BY-SA) animovanými filmy/komiksy Morevna (3. díl) a Pepper&Carrot: The Potion Contest (6. díl), sbírá do 1. března příspěvky na 4. díl svého animovaného filmu Morevna. Mezi odměnami přispěvatelům lze najít např. i videokurzy animace v Synfigu či Blenderu.

xHire | Komentářů: 0
23.2. 12:22 | Bezpečnostní upozornění

Ve středu vydaná "npm@next" verze 5.7.0 správce balíčků pro JavaScript npm (Wikipedie, Node Package Manager) přinesla řadě uživatelů Linuxu nečekanou nepříjemnost. V závislosti na způsobu instalace a ve spojení s příkazem sudo mohlo dojít ke změně vlastníka u systémových souborů, také například /. Chyba je opravena v před několika hodinami vydané verzi npm 5.7.1 [reddit].

Ladislav Hagara | Komentářů: 14
23.2. 10:00 | Nová verze

Byla vydána verze 10.5 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu. Zdůraznit lze integrovanou podporu Let's Encrypt.

Ladislav Hagara | Komentářů: 0
22.2. 12:33 | Komunita

Příspěvek na blogu Signalu (Wikipedie) informuje o založení neziskové nadace Signal Foundation, jež bude zastřešovat další vývoj tohoto svobodného bezpečného komunikátoru běžícího také na Linuxu (Signal Desktop). Brian Acton, spoluzakladatel WhatsAppu, věnoval nadaci 50 milionů dolarů [Hacker News].

Ladislav Hagara | Komentářů: 1
22.2. 05:55 | Zajímavý článek

Článek na Fedora Magazine krátce představuje programovací jazyk Rust a několik zajímavých v Rustu naprogramovaných terminálových aplikací. Jedná se o alternativu k příkazu grep ripgrep, moderní barevnou alternativu k příkazu ls exa, příkazem cloc inspirovaný tokei a zvířátko v terminálu ternimal.

Ladislav Hagara | Komentářů: 0
21.2. 23:55 | Zajímavý projekt

Byl spuštěn Humble Classics Return Bundle. Za vlastní cenu lze koupit hry Broken Sword 5 - The Serpent's Curse, Shadowrun Returns a Shadowrun: Dragonfall - Director's Cut. Při nadprůměrné platbě (aktuálně 8,48 $) také Shadowrun: Hong Kong - Extended Edition, Wasteland 2: Director's Cut - Standard Edition, Age of Wonders III a Xenonauts. Při platbě 15 $ a více lze získat navíc Torment: Tides of Numenera a Dreamfall Chapters: The Final Cut Edition.

Ladislav Hagara | Komentářů: 0
Který webový vyhledávač používáte nejčastěji?
 (2%)
 (27%)
 (62%)
 (2%)
 (3%)
 (0%)
 (1%)
 (1%)
Celkem 457 hlasů
 Komentářů: 35, poslední 21.2. 19:51
    Rozcestník

    GNU R prakticky – 1. díl

    28. 8. 2014 | Karel Kulhavý | Návody | 6410×

    V tomto seriálu se podíváme na schopnosti a možnosti využití GNU R.

    Obsah

    Instalace

    link

    GNU R (web projektu) je pro statistiku něčím podobným, čím je GIMP pro fotografie. Program se dá využít i bez hlubší znalosti statistiky na řešení jednoduchých praktických problémů.

    Na Debianu a odvozených distribucích jako např. Ubuntu nainstalujeme

    sudo apt-get install r-base

    Na SuSE se balíček jmenuje také r-base. Na Redhatu a Fedoře R-core.

    Ke zdrojovým kódům se dostaneme z domácí stránky -> CRAN -> Czech Republic -> nadpis Source Code for all Platform.

    Spuštění

    link

    V příkazové řádce bashe zadáme velké R a naběhne nám interní příkazová řádka programu R. Je to něco jako shell, který občas otevře druhé grafické okno s nějakým grafem, ale funguje nadále, i když jsme okno s grafem ještě nezavřeli. Na zkoušku hned zadáme nějaký příkaz:

    R
    plot(log)
    

    R

    Vytvoří se nám okno zobrazující graf funkce logaritmus. Co když chceme graf tisknout do PDF? Tak před tiskem grafu zadáme příkaz pdf() a po tisku (možná i více grafů) zadáme dev.off(), aby se graf(y) do PDF kompletně zapsal(y). Tisk půjde do souboru Rplots.pdf.

    Chceme-li PNG, místo pdf() použijeme příkaz png(). Jméno souboru bude pak Rplot001.png atd., a každý graf půjde do separátního PNG.

    Program R můžeme opustit pomocí CTRL-D nebo quit(). Zeptá se nás přitom, zda chceme uložit prostředí. V tom případě budeme moci používat všechny data a proměnné po opětovném startu tak, jak jsme je opustili. Můžeme si také přečíst o použitých funkcích:

    help(log)
    help(plot)
    

    R zvládne velikostně tak milióny položek seznamů, tabulek atd. Záleží samozřejmě od výpočetní obtížnosti operace. Pak se zavaří – teda spíš se zavaří nervy uživatele při čekání na doběhnutí operace. A totéž se stává při ukládání prostředí a jeho opětovném nahrávání při startu. Takže pokud se někde upíšeme o nulu, je třeba R killnout. Může se nám také podařit, že R se úplně odvaří, neboť se zavaří při každém startu, protože nahrává příliš velké prostředí. V tom případě smažeme soubor .RData v aktuálním adresáři.

    Běžný člověk nedělá celý den nic jiného než že si tiskne grafy funkce logaritmus, to je jasné, tak si teď ukážeme něco, co snad může být prakticky užitečné.

    Stavíme dveře

    link

    Dejme tomu, že stavíme na chatě latrínu, kůlnu, altánek, sklep atd. a naskýtá se otázka, jak vysoké udělat dveře, aby prošli nejen členové rodiny, ale i případné návštěvy. Řekněme, že víme, že výška populace se řídí normálním rozložením. Tomu se říká také Gaussovo rozložení. Je to takový ten kopeček, jedna z nejčastějších distribucí. Vyskytuje se v případě, že měřená veličina je výsledek součtu množství nezávislých náhodných jevů. V našem případě množství genů a faktorů prostředí, které výšku ovlivňují. Řekněme že průměrná výška je 173 cm a směrodatná odchylka 6 cm a stanovíme si cíl, že 99% našich návštěv dveřmi projde. Jak vypočteme, jak vysoké dveře udělat?

    x=180:200
    plot(x,100*pnorm(x,mean=173,sd=6),ylim=c(98,100)
    ,ylab="Procent co projde dveřmi",xlab="výška dveří [cm]")
    

    R

    Vidíme, že je třeba 187 cm. Kdybysme ale zaokrouhlili na 190 cm, projde dveřmi už 399 ze 400 lidí.

    Operátor dvojtečky vytváří sekvenci čísel od jednoho čísla k druhému s krokem 1. pnorm je distribuční funkce normálního rozložení, také bychom to mohli udělat s funkcí qnorm. Pomocí ylim a xlim se dá omezit číselný rozsah os, např. když chceme graf zazoomovat na detail. A xlab a ylab jsou – překvapivě ;-) – popisky os grafu.

    Rozdíl mezi pnorm a qnorm

    link

    qnorm je funkce kvantilová, což je distribuční funkce s prohozenými osami. Funkce pnorm a qnorm jsou dle mého názoru koncepčně velmi jednoduché. Funkci pnorm se dá výška v centimetrech a ona vrátí, kolik % populace tím projde. Nevrací ale procenta 0-100, ale zlomek 0-1. Funkci qnorm se řekne, kolik % lidí chceme, aby prošlo (zase, v rozsahu 0-1) a ona nám vrátí, jak vysoké dveře máme udělat.

    Když jsme to už udělali s pnorm, s qnorm je to pak obdobné, stačí prohodit číselné rozsahy a popisky os. Takhle to vypadá s funkcí qnorm:

    x=seq(0.98,1,by=0.001)
    par(lab=c(8,8,7))
    plot(x*100,qnorm(x,mean=173,sd=6)
    ,xlab="Pravděpodobnost, že projde dveřmi [%]"
    ,ylab="Výška dveří [cm]",main="Stavíme dveře")
    

    R

    Zde jsem vyšperkoval graf hlavním nadpisem (main). Dále jsem zahustil stupnici na ose x i y pomocí příkazu par a jeho parametru lab. Více informací je v help(par). Tentokrát jsme místo dvojtečky použili funkci seq(), kde se dá specifikovat i krok parametrem by.

    Pokud se ale nechceme zabývat tiskem grafů a zajímá nás jenom to jedno numero, uděláme to takhle:

    > qnorm(0.99,mean=173,sd=6)
    [1] 186.9581
    
    

    No a jak naše modelová distribuce výšek vypadá? Odvodil jsem ji z nějaké diplomky z tělesné výchovy, je ale principiálně špatně, protože ve skutečnosti jsou v populaci kopečky dva, jeden pro muže a druhý pro ženy. Dále se pak připočítává ještě 15-20 cm, aby průchod dveřmi nebyl psychicky traumatizujícím zážitkem, kdy člověk neví, zda si hlavu rozbije či ne. Na ukázku jsem ale použil tuhle zjednodušenou.

    x=seq(150,200,by=0.1)
    plot(x,dnorm(x,mean=173,sd=6),type="l"
    ,main="Modelové rozložení výšek v populaci"
    ,xlab="Výška [cm]"
    ,ylab="Nekalibrovaná hustota pravděpodobnosti")
    

    R

    Histogram souboru

    link

    Jako další ukázku provedu histogram znaků v HTML zdrojáku. Takové histogramy se dají použít k určení typu souboru nebo druhu přirozeného či programovacího jazyka.

    d=readBin(url("http://abclinuxu.cz","rb"),"integer",size=1,signed=FALSE,n=100000)
    length(d)
    hist(d)
    

    R

    Širší obrázek jsem udělal pomocí png(width=800). R nám vytiskne délku (94008) a objeví se nám rudimentární histogram, kde toho ale moc nevidíme, protože blízké ASCII znaky jsou shlukovány dohromady. Nastavíme proto, kde budou hranice mezi jednotlivými sloupečky histogramu:

    hist(d,breaks=seq(-0.5,255.5),xlim=c(32,127)
    ,labels=sapply(as.raw(seq(0,255)),rawToChar)
    ,xlab="ASCII code",freq=FALSE)
    

    R

    Histogram mi dává smysl. Nejsilnější je mezera, která je typická pro texty v evropských jazycích. Dále nám tam trůní silné samohlásky aeio, a pak jsou silně zastoupené znaky typické pro použitý programovací jazyk HTML – špičaté závorky, rovnítko, lomítko, úvozovka.

    breaks nastavují hranice sloupečků – včetně začátku prvního a konce posledního. xlim omezí na určitý rozsah znaků. labels jsou znaky, které jsou malovány nad sloupečky histogramu. freq přepne zobrazování četnosti v počtu znaků na zobrazování jako násobek celkového počtu znaků v dokumentu.

    Funkce seq vyrábí sekvence čísel, s defaultním krokem 1. c je velmi často používaná funkce, která z několika čísel vytvoří seznam nebo spojí seznamy dohromady. funkce sapply aplikuje předepsanou funkci na prvky seznamu a z výsledku udělázase seznam. Kdyby tam sapply nebyla, z nějakého důvodu by to nevytvořilo seznam jednoznakových řetězců, ale jeden dlouhý řetězec.

    Funkce hist je na kreslení histogramů. Manuálové stránky k ní pak jsou nejen pod jménem hist, ale i pod jménem plot.histogram (odkaz je v manuálové stránce hist). U více grafových funkcí je to tak, že další parametry jsou pod plot.něco. Další všeobecné parametry jsou pak pod plot.default a pod par(). Pokud chceme použít par(), zavoláme ho před tím příkazem, kterým něco malujeme.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    28.8.2014 12:17 Zdenek 'Mst. Spider' Sedlak | skóre: 37 | blog: xMstSpider
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Parada, diky za clanek, tesim se na dalsi dil :-)
    28.8.2014 13:55 Jacob
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Díky, díky, díky, díky! Na takový seriál o GNU R čekám řadu let. Moc se těším na další díly.
    28.8.2014 16:36 honza
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Program se dá využít i bez hlubší znalosti statistiky na řešení jednoduchých praktických problémů.
    to je tragedie dnesni doby, zrovna tak jako GIMP dela z lidi grafiky a HTML programatory. S hlubsimi znalostmi je clovek dnes jen pro smich.

    Priznavam , ze jsem se neudrzel a prosim, aby to nikdo nekomentoval.
    28.8.2014 17:15 pseudonym neni anonym
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Priznavam, ze jsem se neudrzel a dovolim si pridat svou reakci. Shodou okolnosti v posledni dobe pouzivam R na vyrobu histogramu, bez hlubsich znalosti statistiky. Je to priznakem tragedie doby? ;)

    Co se tyce budoucich dilu, uvital bych obecny odstavec prestavujici, co bude obsahem dilu. Pripadne shrnujici to, co bylo obsahem.
    28.8.2014 19:38 lqw
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Presne to me okamzite zarazilo, jen bych oponoval ze to neni tragedie jen dnesni doby .

    Jeste me rozesmalo nasazeni pro stanoveni optimalni vysky dveri. Vetsi absurditu vytrzenou z reality jsem uz dlouhou necetl ;-)

    29.8.2014 21:21 Karel Kulhavy
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Citim se nerespektovan a nepravem kritizovan kdyz pises "Vetsi absurditu vytrzenou z reality jsem uz dlouhou necetl ;-)"

    30.8.2014 13:55 koroptev
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    no je fakt, ze resit vejsku dveri pomoci statistickeho sw muze jen dement
    31.8.2014 23:38 Libor Chocholaty | skóre: 12
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Navíc nerespektující dynamiku chůze a psychické aspekty prostorového vnímání při procházení dveřmi. Jak může člověk, kterému tak vadí, že je občas nerespektován, nerespektovat tak zjevné pravdy?
    1.9.2014 00:13 ebik | skóre: 2
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Jak se může někdo šťourat v ilustrativním příkladu? Pokud ten příklad ilustruje problematiku dobře, tak může být sebepraštěnější. Důležité je, že je na něm vidět jaký typ problémů se tím dá řešit, a jakým způsobem tento typ problému řešit lze.

    A co se týče psychického vnímání: několikrát se mi stalo, že při průchodu průchodem o dva centimetry nižším než moje výška, přišel první "psychologický" vjem až po fyzickém otřesu.
    Václav 2.9.2014 20:44 Václav "Darm" Novák | skóre: 26 | blog: Darmovy_kecy | Bechyně / Praha
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Jako názorný příklad to posloužilo skvěle, tak co řešit?
    Cross my heart and hope to fly, stick a cupcake in my eye!
    Petr Tomášek avatar 12.10.2014 13:46 Petr Tomášek | skóre: 37 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Pro některé úlohy úplně naprosto stačí základní znalost...
    28.8.2014 19:53 drc
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Jen bych doplnil, že je určitě dobrý nápad instalovat R z repozitářů CRANu. Minimálně v Ubuntu jsou v repozitářích distribuce občas hodně zastaralé balíky. (I když na to, co bylo v prvním díle je to jedno. Nicméně pokud to s R myslíte trochu vážně, tak to brzo pocítíte. Např. v repo Ubuntu 14.04 je teď verze 3.0.2 a aktuální je 3.1.1.)
    31.8.2014 11:34 lertimir | skóre: 61 | blog: Par_slov
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Nemyslím si, že je to tak horké. Znám mnoho vědeckých pracovišť, které používali nebo používají SAS nebo SPSS 5-8 let staré, pokud už nepřešli na R. Matematika se nemění jako názory na to nejlepší GUI. R verze 3.0.2 je z léta minulého roku. Což neznamená, že v něm nic nepřibylo, ale má cenu si prohlédnout seznam aktualizací, má-li cenu rozbít pohodlnost repozitářů. Obvyklá situace s použitím statistiky je taková, že mám nějaká data, která potřebuji zpracovat a na tyto konkrétní data potřebuji některé konkrétní statistické operace. Pokud sadu, kterou potřebuji, verze obsahuje není třeba aktualizace.
    31.8.2014 20:53 nasson
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Ale zase to může být hodně horké. Většinou člověk skončí u používání nějakých balíčků a ty zase mohou být kompatibilní jen s posledními verzemi R. Osobně jsem byl nucen mít R v Ubuntu vždycky z Cran.
    31.8.2014 22:09 ebik | skóre: 2
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Moje přítelkyně dělá s R již dlouhou dobu, spíše jí vadí, že se postupně některé věci mění (nevím jestli R jako takové, nebo balíčky, které používá - používá jich desítky), každopádně od verze 2.3, nebo kterou, že to začala používat jako první, má od některých výpočtů asi 3 nebo 4 verze, podle toho jak se R měnilo. Někdy to byla změna názvu a parametrů volané funkce, jindy to byla změna ve vykreslování.

    Když už jsem nakousl to vykreslování, myslím, že to bylo u rastrového vykreslování grafů (třeba přímo do JPG), kde závisí na tom, jaké máte nastaveno DPI v systému (Windows). Takže když vzala funkční program ze svého notebooku (125dpi), a pustila ho na rychlejším desktopu (96dpi), tak musela znovu ladit parametry grafu, aby jí to dalo stejný obrázek. Podrobnosti si nepamatuju, kdyby byl zájem, můžu se jí zeptat.
    31.8.2014 23:48 Libor Chocholaty | skóre: 12
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Musím s politováním ctěnému osazenstvu sdělit, že Windows až do verze 8.1 nemá API, kterým by se aplikace mohla dotázat jaké DPI (či fyzické rozměry) má konkrétní výstupní zařízení. Takže shoda velikosti kreseb třeba na různých monitorech je čistě náhodná. To celé je opepřeno tím, že uživatel si může zadat jakési fiktivní DPI, které nemívá se skutečným DPI nic společného, protože si ho uživatel nastavuje jen proto, aby vůbec na monitoru přečetl systémový font. Místo toho, aby si prostě zvolil jinou velikost systémového fontu, jak by člověk od OS očekával.
    2.9.2014 23:52 ebik | skóre: 2
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Pokud jde o kreslení na monitor tak budiž, tam to beru jako náhled. Ale pokud si zvolím kreslení přímo do souboru, tak to tím DPI ovlivněno je, a ovlivněné funkce jaksi neměli v dokumentaci varování, nebo postup, jak to udělat, aby nebylo.
    2.9.2014 23:53 ebik | skóre: 2
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    A to mluvím právě o tom fiktivním DPI, který si uživatel zvolí při nastavení windows.
    pools avatar 30.8.2014 14:56 pools | skóre: 19 | blog: Svědek Damdogův | Opava/Praha
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Začátečníkům rozhodně doporučuju programy jako Rstudio, které výrazně ulehčí práci.
    Vivre libre ou mourir!
    3.9.2014 21:12 me
    Rozbalit Rozbalit vše Male dvere
    Nemohu si pomoci a musim poznamenat ze i kdyby ty dvere byly vysoke jen 150cm, tak by jimi proslo 99% populace. Nektere jedinci by se ale museli ohnout anebo prikrcit... ;-)
    Petr Tomášek avatar 12.10.2014 13:34 Petr Tomášek | skóre: 37 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Tak s tím Debianem to nebude až tak pravda:
    root@xxx:~# cat /etc/debian_version 
    7.6
    root@xxx:~# apt-get install r-base
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Package r-base is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    
    E: Package 'r-base' has no installation candidate
    
    Petr Tomášek avatar 12.10.2014 13:36 Petr Tomášek | skóre: 37 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: GNU R prakticky – 1. díl
    Sorry, byl to nějaký bordel v debianních repozitářích, už to funguje...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.