Hlavním cílem kurzu je zbavit účastníky strachu z programování; ukázat, že programování může efektivně používat každý
(R je intuitivní a "blbuvzdorné"), a to pro řešení běžných problémů; naučit účastníky základům programování v R; dále
ukázat, že pomocí R se dá dělat mnohem více věcí než jen statistika (např. práce s grafikou, databázemi, simulacemi, GIS).
Cílová skupina není nijak vymezena ročníkem studia ani studijním programem, nicméně předpokládáme že účastníci budou
biologové s elementárním ponětím o tom, jak se v oboru pracuje s daty a co je to graf. Kurz je vhodný pro všechny, kteří si
chtějí usnadnit práci s počítačem a rozšířit tvůrčí možnosti. Zvláště doporučeno studentům kteří u počítače tráví více než
~3 hodiny denně.
Poslední úprava: Weiser Martin, Mgr., Ph.D. (09.08.2024)
The main purpose of the course is to teach participants how to program (in R) and effectively use programming for solving common problems. We would like to show that programming is, in principle, easy and anybody can do it (R is very intuitive). Moreover, we would like to demonstrate that R is not just statistics but can be used to work with graphics, databases, simulations or GIS.
We intend to make the course comprehensible for all students, there are no restrictions concerning year, degree or programme. However, we assume that the attendants will be mostly biologists with elementary experience with biological data and with simple graphs. The course is especially suitable for all who spend more than ~3 hours a day working with computer.
If you are interested in the English version of the course, look at the MB120P147E - "R for life", or MB120C15 - "Flash R course" if you are in hurry.
Poslední úprava: Weiser Martin, Mgr., Ph.D. (09.08.2024)
Literatura -
Grolemund G (2014) Hands-On Programming with R. O'Reilly (https://rstudio-education.github.io/hopr/) Crawley MJ (2007) The R book. John Wiley & Sons. (vyšlo i druhé vydání) Venables WN & Smith DM (2008) An introduction to R. R development core team. http://www.r-project.org
Poslední úprava: Weiser Martin, Mgr., Ph.D. (09.08.2024)
Grolemund G (2014) Hands-On Programming with R. O'Reilly (https://rstudio-education.github.io/hopr/) Crawley MJ (2007) The R book. John Wiley & Sons. (second edition exists already) Venables WN & Smith DM (2008) An introduction to R. R development core team. http://www.r-project.org
Poslední úprava: Weiser Martin, Mgr., Ph.D. (09.08.2024)
Požadavky ke zkoušce -
Zápočet je udělován na základě písemného testu (práce s daty, řešení problémů, řízení směrování kódu). Lze získat dodatečné body v testech v průběhu semestru. Zkouška je udělena za naprogramování funkčního programu, který student krátce představí. Očekáváme, že student bude schopen program popsat a vysvětlit mechanismus jeho fungování. Kvalita a funkčnost zkouškového programu musí překonávat příklady z hodin. Zisk zápočtu musí předcházet finálnímu představení programu (zkoušce), ale vítáme průběžné konzultace.
Poslední úprava: Weiser Martin, Mgr., Ph.D. (09.08.2024)
"Zápočet" is based on the test (written exam) score. Extra points are available via tests completed throughout the semester.
"Zkouška" is based on the own code (program) the student makes. The code is supposed to solve a selected problem and the student is supposed to explain its purpose and inner mechanisms in detail. The code is expected to exceed the complexity and functionality of the examples presented during the lectures or in the suggested textbooks. The meeting when a student presents the code ("Zkouška") happens after the students completes "Zápočet", not earlier, but we welcome consultations prior to that.
Poslední úprava: Weiser Martin, Mgr., Ph.D. (09.08.2024)
Sylabus -
Proběhne jako interaktivní přednáška (s počítači), při které budou představeny základy práce s daty, grafikou a programování v R (prostě takové ty základní, nestatistické kejkle). Tato část volně koresponduje s kapitolami 1-5 v Crawley (2007).
Témata teoretické části:
1. Úvod do R. Nápověda a literatura. Prostředí R a specifické fígle; R-editor, RStudio; import a export dat z/do různých souborů. Základní syntaxe, operátory, znaménka, závorky.
2. Základní struktury v R. Proměnné, vektory, matice, data frames, arrays, strings, characters vs. numbers. Indexování jako zcela zásadní věc.
3. Stručný ?bestiář" některých zásadních funkcí. Generování náhodných čísel. Operace s vektory a maticemi (sample, order, sort, diff, max, min, unique, sums, which, ...). Operace s řetězci. Základní matematické operace.
4. Paní skriptů a programování - velmi důležité, budeme se tomu snažit dost věnovat. Funkce, argumenty funkce. Control flow & smyčky (if, else, for, while, repeat). Funkce uvnitř funkcí.
5. Dobré zvyklosti při programování.
6. Vizualizace a grafika v R. Obecné zásady vizualizace dat. Plot, lines, points, abline, text, image, par atd. jako nástroje na vizualizaci prakticky čehokoliv. Lattice (Trellis) graphics. Propojení grafiky a programování - kreslení a animace v R.
Poslední úprava: Weiser Martin, Mgr., Ph.D. (09.08.2024)
An interactive lecture (with computers). We will introduce basics of work with data, graphics and programming in R (all the non-statistical tricks). This part roughly corresponds with chapters 1-5 in Crawley (2007).
Topics of the theoretical part:
1. Introduction to R. Help and literature. R environment and specifics of R. R-editor, RStudio; data import and export, basics of syntax, operators, signs and brackets.
2. Basic structures in R. Variables, vectors, matrices, data frames, arrays, strings, characters vs. numbers. Indexes as a crucial concept.
3. Brief "bestiary" of some useful functions. Random number generation. Operations with vectors and matrices (sample, order, sort, diff, max, min, unique, sums, which). Operations with strings. Basic mathematical functions.
4. Scripting and programming (code writing). Most important, we will dedicate extra time to make sure anybody understand this. Functions, arguments of functions. Control flow & loops (if, else, for, while, repeat). Functions within/inside function.
5. Good programming practice.
6. Data visualisation and graphics in R. Good practice in data visualization. Plot, lines, points, abline, text, image, par etc. as tools to visualize nearly anything. Lattice (Trellis) graphics. Connection of graphics and programming ? drawing and animations in R.
Poslední úprava: Weiser Martin, Mgr., Ph.D. (09.08.2024)
Výsledky učení -
Cílem kurzu je zvládnout R tak, abyste mohli samostatně
tvořit (jednoduché) aplikace. Hlavním výsledkem učení tedy bude,
že samostatně vytvoříte aplikaci v R, které budete detailně rozumět
a dokážete ji proto dále upravovat a přizbůsobovat novým potřebám.
V průběhu kurzu dosáhnete těchto výsledků učení:
- Podle jména a podle popisu najdete vhodnou funkci k řešení problému.
- Přečtete a porozumíte popisu existujících funkcí, v popisu najdete relevantní části tak, že dokážete funkci použít.
- V dokumentaci, ve fórech, zprávách a textech na internetu, ve výsledcích práce velkých jazykových modelů najdete rady a tipy pro řešení zadaného konkrétního problému.
- Najdete, nainstalujete a použijete rozšiřující knihovny.
- Ručně spustíte a ukončíte interpretr jazyka R.
- Mezi jednotlivými projekty či sezeními přenesete libovolná data.
- Interpretru zpřístupníte externí data. Tato data budou ve formách různých tabulek, ve specifických případech ve formě textů.
- Vyrobíte přenositelné soubory, které budou obsahovat grafické a datové výsledky vaší práce v interpretru.
- Vytvoříte tyto typy datových objektů: vector, factor, matrix, list, dataframe.
- Určíte vlastnosti předem neznámých objektů zmíněných typů.
- Objekty dokážete spojovat a slučovat, přejmenovávat, mazat a měnit jejich typy.
- Dokážete měnit jednotlivé prvky datových objektů.
- Prvky v datových objektech najdete pomocí jejich polohy, hodnoty nebo atributů.
- Dokážete měnit pořadí prvků v datových objektech.
- Z kombinací objektů dokážete najít průnik a sjednocení prvků, unikátní a opakované prvky.
- Použijete logické operátory k vyhodnocení vlastností prvků objektů, použijete obyčejné, "shrnující" i "zkrácené" logické operátory.
- Poznáte zvláštnosti strojového zpracování desetinných čísel (čísel s plovoucí desetinnou čárkou), zaokrouhlování a specifických hodnot mimo racionální čísla.
- Vytvoříte vlastní funkce, tj. objekty, které v sobě obsahují soustavu jiných funkcí, s cílem zjednodušit práci s daty.
- Přečtete kód již existujících funkcí a přizpůsobíte si jeho části tak, aby plnily Vaše specifické požadavky.
- Vytvoříte funkce, které budou využívat vaše jiné funkce, pracovat s výchozími
i povinně zadávanými argumenty bez toho, aby ovlivnily existující objekty v uživatelském prostoru mimo své prostředí.
- Provedete podmíněné úpravy prvků "vektorů".
- Vytvoříte funkce tak, aby se jejich jednotlivé části spouštěly podmíněně.
- Aplikujete základní mechanismy ošetření chyb vstupů funkcí (vyvolání výjimky - chyby).
- Automatizujete opakované volání funkcí pomocí programových smyček.
- Do smyčky vestavíte podmíněné přerušení a vynechání cyklu.
- Zvolíte vhodný typ smyčky (repeat, while nebo for) pro konkrétní programátorský problém.
- Jednoduché případy smyček převedete do krátkých forem s použitím funkcí z rodiny apply, získáte povědomí o nástrojích funkcionálního programování (vectorize, outer, Reduce, Map, Filter, do.call,...)
- Textové řetězce spojíte i rozdělíte.
- Části textových řetezců najdete a změníte na základě pozice i obsahu, použijete při tom regulární výrazy.
- Vytvoříte vektorové i bitmapové grafy.
- Pomocí základní grafiky vytvoříte úplně anotované histogramy, sloupcové a krabicové grafy, bodové a spojnicové grafy, heatmapy a vrstevnicové grafy.
- Typ grafu zvolíte na základě zobrazovaných dat a cíle sdělení.
- Do těchto grafů přidáte legendu, dodatečné osy, textové popisy, body, linie a šipky.
- U elementů grafů změníte zobrazení (barvu, velikost, použité symboly), a to včetně podmíněných změn.
- Změníte barevnou paletu svých grafů a to i s ohledem na přístupnost a očekávané použití, poznáte projekty ColorBrewer a viridis.
- Vytvoříte graf pomocí knihovny ggplot2, využijete ji při tvorbě grafů s "facetami" - "podgrafy"
Poslední úprava: Weiser Martin, Mgr., Ph.D. (28.01.2026)
The objective of this course is to master R so that you can independently create (simple) applications. The primary learning outcome is the independent creation of an R application that you understand in detail and are therefore able to modify and adapt to new requirements.
Throughout the course, you will achieve the following learning outcomes:
Problem Solving and Resources
Identify suitable functions to solve a problem based on their name and description.
Read and comprehend documentation for existing functions, locating relevant sections to implement the function effectively.
Locate advice and tips for specific problems within documentation, forums, online texts, and through large language model (LLM) outputs.
Find, install, and utilize third-party libraries (packages).
Environment and Data Handling
Manually start and terminate the R interpreter.
Transfer data between individual projects or sessions.
Import external data into the interpreter, including various table formats and, in specific cases, text data.
Generate portable files containing graphical and data results of your work.
Data Objects and Manipulation
Create the following data object types: vector, factor, matrix, list, and dataframe.
Determine the properties of previously unknown objects of these types.
Merge, rename, delete, and convert object types.
Modify individual elements within data objects.
Locate elements using their position, value, or attributes.
Reorder elements within data objects.
Perform set operations (intersections, unions, unique and repeated elements) on object combinations.
Apply logical operators (standard, summarizing, and short-circuit) to evaluate element properties.
Numerical Specifics
Recognize the specifics of machine processing regarding floating-point numbers, rounding, and special values (non-rational numbers).
Functions and Programming
Create custom functions (objects containing a sequence of other functions) to streamline data tasks.
Read and adapt existing function code to meet specific requirements.
Develop functions that call other functions and work with default or mandatory arguments without affecting objects in the global environment (user space).
Perform conditional modifications on vector elements.
Design functions with conditional execution of specific components.
Apply basic error-handling mechanisms for function inputs (raising exceptions/errors).
Automation and Loops
Automate repetitive function calls using program loops.
Integrate conditional breaks and skips (next) into loops.
Select the appropriate loop type (repeat, while, or for) for a specific programming task.
Convert simple loops into concise forms using the apply family of functions and gain familiarity with functional programming tools (vectorize, outer, Reduce, Map, Filter, do.call, etc.).
String Manipulation
Concatenate and split text strings.
Locate and modify parts of strings based on position or content using regular expressions (regex).
Data Visualization
Generate vector and bitmap graphics.
Create fully annotated histograms, bar and box plots, scatter and line plots, heatmaps, and contour plots using base R graphics.
Select the appropriate plot type based on the data and the intended message.
Enhance plots with legends, additional axes, text labels, points, lines, and arrows.
Modify aesthetic elements (color, size, symbols), including conditional changes.
Adjust color palettes with regard to accessibility and intended use, utilizing projects like ColorBrewer and viridis.
Create visualizations using the ggplot2 library, including the use of facets (subplots).
Poslední úprava: Weiser Martin, Mgr., Ph.D. (28.01.2026)