1 Procvičování 1 s řešením R jako kalkulačka 1. Sečtěte 12 a 5 Normálně použijeme R jako kalkulačku: 12+5 ## [1] 17 2. Vynásobte 5 a 8 5*8 ## [1] 40 3. Spočtěte druhou mocninu rozdílu dvou čísel z bodů 1) a 2) Buď zkombinujeme předchozí příkazy do jednoho a přitom je odečteme a umocníme: ((12+5)-(5*8))~2 ## [1] 529 Nebo můžeme upravit předchozí příkazy tak, aby se jejich výsledky uložily do objektů, třeba a a b, a jejich rozdíl následně umocníme. Zde je na místě upozornit na přiřazovací znak složený ze znaménka < a -. Lze použít i =. Přiřazování hodnot objektům a vytváření tak nových objektů jsem ale opomenul ukázat ve druhé skupině, příště to napravím. a<- 12+5 b<- 5*8 (a-b)~2 ## [1] 529 4. Vypočtěte Froudeho číslo Fr pro rychlost proudu U = 0.65 m.s-1 a hloubku D = 0.24 m. Fr = U/{gD)1/2, kde g = 9.81. (Froudeho číslo je hydraulický parametr, o němž bude řeč příště) Pro odmocnění máme několik možností, jinak je to kalkulačková záležitost: 0.65/(9.81*0.24)~(l/2) ## [1] 0.4236169 0.65/(9.81*0.24)~(0.5) ## [1] 0.4236169 0.65/sqrt(9.81*0.24) ## [1] 0.4236169 2 Nápověda 5. Zjistěte, jak se vypočítá logaritmus (logarithm) při základě 10 a vypočtěte ho pro číslo 1000 (měli byste dostat hodnotu 3). K čemu je funkce loglpO? Nejprve vyhledáme funkci, která počítá logaritmus, anglicky logarithm. Možností je zkusit štěstí v RStudiu: napíšeme 'log' a stiskneme Tab. Vyskočí nám příkazy začínající na 'log' se stručným popisem. Další možností je vyhledání na internetu. Do googlu zadáme něco jako 'logarithm r' a určitě najdeme funkci log() a podobné. Nakonec se můžeme pokusit funkci najít i v nápovědě R. Na to se ale omezuji jen, nemám-li k dispozici internet: do R zadáme buď ??logarithm, nebo help. search (logarithm). Otevře se nám pak okno se seznamem funkcí, v jejichž nápovědě se řetězec logarithm vyskytuje. Mezi nimi je funkce log(), podle popisu počítá Logarithms and Exponentials, to je co hledáme. Když otevřeme nápovědu k této funkci ?log nebo help (log) (případně stisknutím Fl v RStudiu, máme-li kurzor na jménu funkce, nebo jsme se na ní dostali na internetu), dočteme se, že pro výpočet logaritmu při základu 10 máme 2 způsoby. Buď použít funkci log() s argumentem base = 10, nebo funkci loglOO. Ve stejné nápovědě se také dočteme, že loglpO počítá přirozený logaritmus z (x+1). log(1000, 10) ## [1] 3 loglO(lOOO) ## [1] 3 6. Zjistěte, na co je funkce repO? Vyvoláme nápovědu k funkci ?rep, kde se dočteme, že funkce rep() slouží k vytváření repeticí. 7. Vytvořte sekvenci čísel od 0 do 1 po 0.1. (v R musí být použita desetinná tečka, nikoliv čárka) Nejprve musíme najít funkci, která vytváří sekvence, anglicky sequence. Opět, na výběr máme zkusit štěstí a tipnout si začátek jména funkce v RStudiu, internet, nebo ??. Já bych volil internet a googlil 'create sequence r'. První odkaz mě hodil na nápovědu k funkci seq(). V nápovědě k této funkci si přečteme o jejím použití, můžeme si vyzkoušet i příklady na konci nápovědy, které stačí jen vkládat do R. Podle nápovědy bychom měli pochopit, že sekvenci od 0 do 1 po 0,1 vytvoříme zadáním argumentů f rom =, to = a by = (od, do, po). seq(from=0, to=l, by=0.1) ## [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Ze cvíka už víme, že pokud zachováme pořadí argumentů shodné s pořadím uvedeným v nápovědě, nemusíme vypisovat jejich názvy. Stačí tedy: seq(0,1,0.1) ## [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 3 Nápověda + kalkulačka 8. Vypočtěte, jaká musí být hloubka, aby Fr bylo 0.23, když rychlost proudu bude 0.35 m.s"1 a zaokrouhlete výsledek na 2 desetinná místa (D = (U/Fr)2/g). (anglicky zaokrouhlit je round) Vypočítat hloubku nebude problém, stačí dosadit do rovnice: (0.35/0.23)"2/8.91 ## [1] 0.2598979 Pro zaokrouhlení zase musíme najít funkci. Je to round(). V nápovědě se dozvíme, že argument digits = udává počet desetinných míst (nemusíme ho ale jmenovat, pokud bude na druhém místě). D<- (0.35/0.23)"2/8.91 round(D, 2) ## [1] 0.26 Nebo celé naráz: round((0.35/0.23)"2/8.91, 2) ## [1] 0.26