logo

R #3: Jak si nekomplikovat život hned od začátku

Rko? Máme. R Studio? Máme. Co teď?

Ideální první krok, jak začít s jakýmkoliv menším i větším projektem v R Studiu, je nedělat zbytečný bordel hned od začátku a průběžně po sobě uklízet způsobem, který nikomu neubližuje. Ve zkratce: buďte klidně čuňátka, ale jděte na to chytře. Kupodivu je to věc, se kterou bojuje velká spousta lidí, ale nutno říct, že ne vždycky to je úplně jejich vina.

Já se učila s Rkem pracovat stylem, který dneska už téměř nepoužívám. V tomhle článku proto upozorňuju na dvě věci, kterým je záhodno se vyvarovat hnedka zkraje.

Nepoužívejte setwd()

Moje skripty, nebo cokoliv, co jsem dělala v Rku, obsahovaly na začátku vždycky tohle:

setwd("~/Documents/Dataholka/proste/cesta/kterou/mam/jen/ja")

Na vysvětlenou: Funkce setwd(), která je akronymem slov „Set As Working Directory“, udělá z adresáře, ve kterém se nacházíte, tzv. pracovní adresář. V překladu to znamená, že cokoliv budete potřebovat nahrát z disku nebo na něj uložit, bude skript hledat právě tam. Je to super vychytávka, ale dost rychle vás kopne do zadku, neboť….

Když dál v kódu na tuhle cestičku navazujete a různě do ní přidáváte další části cesty, nebo je potřebujete nějak doupravovat, začne to být trochu hloupý. Úplně nejhloupější to je pak proto, že pokud se s celým skriptem dostanete na jiný počítač, kde podobná adresářová struktura nebude předem vydlážděná, strávíte pár perných chvil úpravou cesty na novou. A tohle se může opakovat do zblbnutí podle toho, jak moc se budete stěhovat z počítače na počítač, z adresáře do adresáře a tak podobně. A mezi námi, ani kolega, kterému skript pošlete, z vás nebude mít zrovna radost, až to bude muset po vás přepisovat :)

Je to chybka nebo spíš trochu zlozvyk, který dělá hodně začátečníků. Myslím si, že to je hlavně proto, že jim nikdo na začátku neřekl, že existují tzv. Projects.

Používejte Projects

Všechno to, v čem vás setwd() nakope, právě práce v Projects řeší. Projekt v R Studiu je totiž místo, které není závislé na adresáři, ve kterém se nachází. Můžete s ním hýbat z místa na místo a neporušíte jeho vnitřní stabilitu, protože projekt bere jako pracovní adresář ten, ve kterém se zrovna nachází. Aleluja!

Tuhle nabídku najdete úplně obyčejně v liště R Studia pod File – New Project…

Navíc, projektů můžete mít spuštěných vícero najednou (udrží-li vašem RAMka tolik dat pohromadě) a každý z nich bude mít vlastní prostředí.

V tomhle bodě se hodí upozornit, že není dobrá praxe ukládat si tzv. workspace ve formátu .RData. Výjimkou je situace, kdy se do noci hrabete v datech, ale potřebujete jít spát, tak si to necháte na ráno tím způsobem, že si uložíte stávající podobu toho, na čem děláte. Budete-li namísto ukládání do .Rproj ukládat data do .RData, uložíte si i všechny proměnné a data, která v prostředí jsou.

Takhle vypadají dva projekty spuštěné najednou (pracujete-li na Macu).

Je to fajn, pokud potřebujete na svou práci navázat a dokončit ji.

Není to fajn, když chcete spustit projekt nad jinými daty a při nahrání workspace se vám nahrají s prostředím i stará data.

A ano, existuje na to kouzelná věc (kterou lidi, kteří rádi sledují, jak svět hoří, používají na začátku svých skriptů #konechejtu): rm(list = ls(() . Tahle nevinná funkce hodnoty v prostředí natvrdo smaže. Jenže! Vyčistí se tím jenom to jedno konkrétní prostředí a zůstanou nahrané všechny balíčky, funkce a další tzv. „dependencies“, které jsou skryté pod povrchem toho, co vidíte vy jako uživatel, a o čem vám Rko nejdřív vůbec nic neřekne (o tom, jak s ní zacházet, si povíme někdy příště…)

Poznámka závěrem

Všechny tyhle tipy nejsou dogma, kterého se musíte zuby nehty držet. Jsou to jen z mé zkušenosti dobré vychytávky, které vám v budoucí práci v R Studiu dost ulehčí život. A navíc plně splňují mou oblíbenou zásadu:

ALWAYS CODE AS IF THE GUY WHO ENDS UP MAINTAINING YOUR CODE WILL BE A VIOLANT PSYCHOPATH WHO KNOWS WHERE YOU LIVE.

Inspirováno tímhle a tímhle článkem.

Tenhle článek je součástí seriálu o Rku, ve kterém se dělím o všechny kontrmelce, radosti i starosti, které mi tenhle jazyk v mé práci zatím přinesl. Co den byste měli najít jeden Rko tip či radu nebo návod, který by mi před lety ulehčil moje vlastní putování touhle programovací krajinou. A tak nějak doufám, že to ulehčí život aspoň vám…

Published by

Leni

Data-driven & geek girl going places🚀 🤓 Geek, nerdy & techie news about social media, digital marketing, books & movies, and R programming. 💻 📚 Czech globe-trotter in love with Sweden aspiring for the USA. 🌍

2 thoughts on “R #3: Jak si nekomplikovat život hned od začátku”

Leave a reply

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

This site uses Akismet to reduce spam. Learn how your comment data is processed.