10 przydatnych funkcji R, o których możesz nie wiedzieć

10 przydatnych funkcji R, o których możesz nie wiedzieć

R jest pełen różnorodnych funkcji. Poniżej podam dziesięć najciekawszych z nich, o których wielu może nie wiedzieć. Artykuł ukazał się po tym, jak odkryłem, że moje opowieści o niektórych funkcjach R, które wykorzystuję w swojej pracy, zostały entuzjastycznie przyjęte przez innych programistów. Jeśli już wszystko wiesz na ten temat, to przepraszam, że zmarnowałem Twój czas. Jednocześnie, jeśli masz czym się podzielić, poleć w komentarzach coś przydatnego.

Skillbox poleca: Kurs praktyczny „Programista Pythona”.

Przypomnienie: dla wszystkich czytelników „Habr” - rabat w wysokości 10 000 rubli przy zapisywaniu się na dowolny kurs Skillbox przy użyciu kodu promocyjnego „Habr”.

funkcja przełączania

Bardzo, bardzo lubię funkcję switch(). W rzeczywistości jest to wygodny skrót instrukcji if podczas wybierania wartości na podstawie wartości innej zmiennej. Uważam to za szczególnie przydatne, gdy piszę kod, który musi załadować określony zestaw danych na podstawie poprzedniego wyboru. Na przykład, jeśli masz zmienną o nazwie zwierzę i chcesz wybrać konkretny zestaw danych w zależności od tego, czy zwierzę jest psem, kotem czy królikiem, napisz tak:

dane < — odczyt.csv(
przełącznik (zwierzę,
"pies" = "dogdata.csv",
"cat" = "catdata.csv",
„królik” = „królikdata.csv”)
)

Ta funkcja będzie przydatna w aplikacjach Shiny, w których trzeba załadować różne zestawy danych lub pliki środowiska w zależności od jednego lub więcej elementów menu wejściowego.

Skróty klawiszowe dla RStudio

Ten hack nie jest przeznaczony dla R, ale dla RStudio IDE. Jednak skróty klawiszowe są zawsze bardzo wygodne i pozwalają zaoszczędzić czas podczas wprowadzania tekstu. Moje ulubione to Ctrl+Shift+M dla operatora %>% i Alt+- dla operatora <-.

Aby wyświetlić wszystkie skróty klawiszowe, po prostu naciśnij Alt+Shift+K w RStudio.

pakiet Flexdashboard

Jeśli chcesz szybko uruchomić panel kontrolny Shiny, nie ma nic lepszego niż pakiet pulpitu nawigacyjnego. Zapewnia możliwość pracy ze skrótami HTML, co z kolei ułatwia i bezproblemowe tworzenie pasków bocznych, wierszy i kolumn. Istnieje również możliwość wykorzystania paska tytułowego, który pozwala na umieszczenie go na różnych stronach aplikacji, pozostawienie ikon, skrótów na Githubie, adresów e-mail i wiele więcej.

Pakiet pozwala na pracę w ramach Rmarkdown, dzięki czemu wszystkie aplikacje można umieścić w jednym pliku Rmd, a nie rozprowadzać je po różnych serwerach i plikach UI, jak dzieje się to np. przy użyciu błyszczącego pulpitu nawigacyjnego. Używam flexdashboard zawsze, gdy muszę stworzyć prosty prototyp dashboardu przed pracą nad czymś złożonym. Dzięki tej funkcji możesz stworzyć prototyp w ciągu godziny.

req i sprawdź funkcje w R Shiny

Programowanie w R Shiny może być mylące, szczególnie gdy otrzymujesz dziwne komunikaty o błędach, które utrudniają zrozumienie, co się dzieje. Jednak z biegiem czasu Shiny rozwija się i udoskonala, pojawia się tu coraz więcej funkcji, które pozwalają zrozumieć przyczynę błędu. Zatem req() rozwiązuje problem za pomocą „cichego” błędu, gdy ogólnie nie jest jasne, co się dzieje. Umożliwia wyświetlenie elementów interfejsu użytkownika powiązanych z poprzednimi akcjami. Wyjaśnijmy na przykładzie:

wyjście$go_button < — błyszczące::renderUI({

# Przycisk wyświetlania tylko wtedy, gdy wybrano wejście zwierzęcia

błyszczące::req(wejście$zwierzę)

# przycisk wyświetlacza

błyszczące::actionButton("idź",
paste("Zachowanie", input$animal, "analiza!")
)
})

valid() sprawdza wszystko przed renderowaniem i daje możliwość wydrukowania komunikatu o błędzie - na przykład, że użytkownik przesłał niewłaściwy plik:

# pobierz plik wejściowy CSV

inFile < — input$file1
dane < — inFile$datapath

# renderuj tabelę tylko wtedy, gdy są to psy

błyszczące::renderTable({
# sprawdź, czy są to akta psów, a nie kotów i królików
błyszczące::weryfikacja(
potrzeba("Imię psa" %in% colnames(data)),
„Nie znaleziono kolumny Imię psa — czy załadowałeś właściwy plik?”
)

dane
})

Więcej informacji na temat wszystkich tych funkcji można znaleźć tutaj.

Przechowywanie Twoich danych uwierzytelniających dla siebie w środowisku systemowym

Jeśli planujesz udostępnić kod wymagający wprowadzenia poświadczeń, użyj środowiska systemowego, aby uniknąć hostowania własnych poświadczeń w Githubie lub innej usłudze. Przykładowe umiejscowienie:

Sys.setenv(
DSN = "nazwa_bazy danych",
UID = "ID użytkownika",
PASS = „Hasło”
)

Teraz możesz zalogować się przy użyciu zmiennych środowiskowych:

db < — DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv("DSN"),
uid = Sys.getenv("UID"),
pwd = Sys.getenv("PASS")
)

Jeszcze wygodniej (szczególnie jeśli często korzystasz z danych) jest ustawienie ich jako zmiennych środowiskowych bezpośrednio w systemie operacyjnym. W takim przypadku będą one zawsze dostępne i nie będziesz musiał ich określać w kodzie.

Zautomatyzuj porządek za pomocą stylera

Pakiet styler może pomóc w uporządkowaniu kodu; ma wiele opcji automatycznego przenoszenia stylu kodu do tidyverse. Wszystko, co musisz zrobić, to uruchomić styler::style_file() na problematycznym skrypcie. Pakiet zrobi wiele (ale nie wszystko), aby przywrócić porządek.

Parametryzacja dokumentów R Markdown

Stworzyłeś więc świetny dokument R Markdown, w którym analizujesz różne fakty na temat psów. I wtedy przychodzi ci do głowy, że lepiej byłoby wykonać tę samą pracę, ale tylko z kotami. Nie ma problemu, możesz zautomatyzować tworzenie raportów o kotach za pomocą tylko jednego polecenia. Aby to zrobić, wystarczy sparametryzować dokument przeceny R.

Można to zrobić, ustawiając parametry nagłówka YAML w określonym dokumencie, a następnie ustawiając parametry wartości.

— tytuł: „Analiza zwierząt”
autor: „Keith McNulty”
data: „21 marca 2019”
wydajność:
dokument_html:
code_folding: "ukryj"
parametry:
nazwa_zwierzęcia:
wartość: Pies
wybory:
- Pies
- Kot
- Królik
lata_studiów:
wejście: suwak
min: 2000
maks.: 2019
krok 1
runda: 1
wrzesień: "
wartość: [2010, 2017] —

Teraz możesz zarejestrować wszystkie zmienne w kodzie dokumentu jako params$animal_name i params$years_of_study. Następnie użyjemy menu rozwijanego Knit (lub knit_with_parameters()) i będziemy mogli wybrać parametry.

10 przydatnych funkcji R, o których możesz nie wiedzieć

objawić

ujawnijs to pakiet umożliwiający tworzenie świetnych prezentacji HTML z wbudowanym kodem R, intuicyjną nawigacją i przesuwanymi menu. Skróty HTML umożliwiają szybkie utworzenie zagnieżdżonej struktury slajdów z różnymi opcjami stylizacji. Cóż, HTML będzie działał na każdym urządzeniu, więc prezentację można otworzyć na każdym telefonie, tablecie czy laptopie. Ujawnianie informacji można skonfigurować instalując pakiet i wywołując go w nagłówku YAML. Oto przykład:

— tytuł: „Odkrywanie krawędzi wszechświata analityki ludzi”
autor: „Keith McNulty”
wydajność:
ujawnijs::revealjs_presentation:
środek: tak
szablon:starwars.html
motyw: czarny
data: „HR Analytics Meetup London – 18 marca 2019”
pliki_zasobów:
— darth.png
- gwiazda śmierci.png
- hanchewy.png
- milenium.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Kod źródłowy prezentacji opublikowane tutaj, i ona samarpubs.com/keithmcnulty/hr_meetup_london'>prezentacja - tutaj.

10 przydatnych funkcji R, o których możesz nie wiedzieć

Tagi HTML w R Shiny

Większość programistów nie wykorzystuje w pełni znaczników HTML dostępnych w R Shiny. Ale to tylko 110 tagów, które umożliwiają utworzenie krótkiego wywołania funkcji HTML lub odtwarzania multimediów. Na przykład niedawno użyłem tags$audio do odtworzenia dźwięku „zwycięstwa”, który ostrzegał użytkownika o ukończeniu zadania.

Pochwała pakietu

Korzystanie z tego pakietu jest bardzo proste, ale potrzebne jest, aby pochwalić użytkownika. Może to wydawać się dziwne, ale naprawdę im się to podoba.

10 przydatnych funkcji R, o których możesz nie wiedzieć

Skillbox poleca:

Źródło: www.habr.com

Dodaj komentarz