10 hyödyllistä R-ominaisuutta, joista et ehkä tiedä

10 hyödyllistä R-ominaisuutta, joista et ehkä tiedä

R on täynnä erilaisia ​​toimintoja. Alla kerron niistä kymmenen mielenkiintoisinta, joista monet eivät ehkä tiedä. Artikkeli ilmestyi sen jälkeen, kun huomasin, että tarinani joistakin työssäni käyttämistäni R:n ominaisuuksista otettiin innostuneesti muiden ohjelmoijien vastaan. Jos tiedät jo kaiken tästä, pyydän anteeksi aikaasi tuhlaamista. Samalla, jos sinulla on jotain jaettavaa, suosittele jotain hyödyllistä kommenteissa.

Skillbox suosittelee: Käytännön kurssi "Python-kehittäjä".

Muistutamme sinua: kaikille "Habrin" lukijoille - 10 000 ruplan alennus ilmoittautuessaan mille tahansa Skillbox-kurssille "Habr" -tarjouskoodilla.

kytkintoiminto

Pidän todella, todella paljon switch(). Itse asiassa se on kätevä lyhenne if-lauseeseen, kun valitaan arvo toisen muuttujan arvon perusteella. Pidän tätä erityisen hyödyllisenä, kun kirjoitan koodia, jonka on ladattava tietty tietojoukko edellisen valinnan perusteella. Jos sinulla on esimerkiksi muuttuja nimeltä eläin ja haluat valita tietyn tietojoukon sen mukaan, onko eläin koira, kissa vai kani, kirjoita tämä:

data < — read.csv(
kytkin (eläin,
"dog" = "koiratiedot.csv",
"cat" = "catdata.csv",
"kani" = "kanidata.csv")
)

Tämä ominaisuus on hyödyllinen Shiny-sovelluksissa, joissa sinun on ladattava erilaisia ​​tietojoukkoja tai ympäristötiedostoja riippuen yhdestä tai useammasta syöttövalikon kohdasta.

RStudion pikanäppäimet

Tämä hakkerointi ei ole niinkään R:lle, vaan RStudio IDE:lle. Pikanäppäimet ovat kuitenkin aina erittäin käteviä, joten voit säästää aikaa tekstiä syötettäessä. Suosikkini ovat Ctrl+Shift+M %>%-operaattorille ja Alt+- operaattorille <-.

Näet kaikki pikanäppäimet painamalla Alt+Shift+K RStudiossa.

flexdashboard-paketti

Kun sinun on käynnistettävä Shiny-kojelautasi nopeasti, ei ole mitään parempaa kuin kojelautapaketti. Se tarjoaa mahdollisuuden työskennellä HTML-pikakuvakkeiden kanssa, jotka puolestaan ​​tekevät sivupalkkien, rivien ja sarakkeiden luomisesta helppoa ja vaivatonta. On myös mahdollisuus käyttää otsikkopalkkia, jonka avulla voit sijoittaa sen sovelluksen eri sivuille, jättää kuvakkeita, pikakuvakkeita Githubiin, sähköpostiosoitteita ja paljon muuta.

Paketin avulla voit työskennellä Rmarkdownin puitteissa, joten voit sijoittaa kaikki sovellukset yhteen Rmd-tiedostoon etkä jakaa niitä eri palvelimille ja käyttöliittymätiedostoille, kuten tehdään esimerkiksi shinydashboardin avulla. Käytän flexdashboardia aina, kun minun on luotava yksinkertainen kojelautaprototyyppi ennen kuin teen jotain monimutkaista. Tämän ominaisuuden avulla voit luoda prototyypin tunnissa.

vaadi ja vahvista toimintoja R Shinyssa

R Shinyn kehittäminen voi olla hämmentävää, varsinkin kun saat jatkuvasti outoja virheilmoituksia, joiden vuoksi on vaikea ymmärtää, mitä tapahtuu. Mutta ajan myötä Shiny kehittyy ja paranee, tänne ilmestyy yhä enemmän toimintoja, joiden avulla voit ymmärtää virheen syyn. Joten req() ratkaisee ongelman "hiljaisella" virheellä, kun ei yleensä ole selvää, mitä tapahtuu. Sen avulla voit näyttää aikaisempiin toimintoihin liittyviä käyttöliittymäelementtejä. Selitetäänpä esimerkillä:

output$go_button < — kiiltävä::renderUI({

# vain näyttöpainike, jos eläinsyöttö on valittu

kiiltävä::req(syöttö$eläin)

# näyttöpainike

kiiltävä::actionButton("go",
paste("Conduct", input$animal, "analyysi!")
)
})

validate() tarkistaa kaiken ennen renderöintiä ja antaa sinulle mahdollisuuden tulostaa virheilmoitus - esimerkiksi että käyttäjä latasi väärän tiedoston:

# hanki csv-syöttötiedosto

inFile < — syöte$tiedosto1
data < — inFile$datapath

# renderöi taulukko vain, jos se on koiria

kiiltävä::renderTable({
# Tarkista, että se on koiran tiedosto, ei kissojen tai kanien
kiiltävä::validate(
need("Koiran nimi" %in% colnames(data)),
"Koiran nimi -saraketta ei löydy – latasitko oikean tiedoston?"
)

tiedot
})

Lisätietoja kaikista näistä ominaisuuksista löytyy täältä.

Valtuustietojesi tallentaminen itsellesi järjestelmäympäristöön

Jos aiot jakaa koodia, joka edellyttää kirjautumistietojen syöttämistä, käytä järjestelmäympäristöä välttääksesi omien tunnistetietojesi isännöimistä Githubissa tai muussa palvelussa. Esimerkki sijoittelusta:

Sys.setenv(
DSN = "tietokannan_nimi",
UID = "Käyttäjätunnus",
PASS = "Salasana"
)

Nyt voit kirjautua sisään käyttämällä ympäristömuuttujia:

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

On vielä kätevämpää (varsinkin jos käytät tietoja usein) asettaa ne ympäristömuuttujiksi suoraan käyttöjärjestelmässä. Tässä tapauksessa ne ovat aina saatavilla, eikä sinun tarvitse määrittää niitä koodissa.

Automatisoi tidyverse stylerilla

Styler-paketti voi auttaa sinua puhdistamaan koodisi; siinä on monia vaihtoehtoja koodityylin automaattiseen tuomiseen tidyverseen. Sinun tarvitsee vain suorittaa styler::style_file() ongelmallisessa skriptissäsi. Paketti tekee paljon (mutta ei kaikkea) järjestyksen palauttamiseksi.

R-merkintäasiakirjojen parametrointi

Joten olet luonut upean R Markdown -dokumentin, jossa analysoit erilaisia ​​koiria koskevia tosiasioita. Ja sitten tulee mieleen, että olisi parempi tehdä sama työ, mutta vain kissojen kanssa. Ei hätää, voit automatisoida kissaraporttien luomisen yhdellä komennolla. Tätä varten sinun tarvitsee vain parametroida R-merkintädokumentti.

Voit tehdä tämän asettamalla YAML-otsikon parametrit määritetyssä asiakirjassa ja asettamalla sitten arvoparametrit.

- otsikko: "Eläinanalyysi"
kirjoittaja: "Keith McNulty"
päivämäärä: "21"
lähtö:
html_document:
code_folding: "piilota"
parametrit:
eläimen_nimi:
arvo: koira
vaihtoehdot:
-Koira
— kissa
— Kani
years_of_study:
tulo: liukusäädin
min: 2000
maksimi: 2019
vaihe 1
erä 1
syys: "
arvo: [2010, 2017] —

Nyt voit rekisteröidä kaikki dokumentin koodin muuttujat parametreiksi params$eläimen_nimi ja params$years_of_study. Sitten käytämme Neuloa-pudotusvalikkoa (tai neuloa_parametreilla()) ja voimme valita parametreja.

10 hyödyllistä R-ominaisuutta, joista et ehkä tiedä

paljastaa

discoverjs on paketti, jonka avulla voit luoda upeita HTML-esityksiä sisäänrakennetulla R-koodilla, intuitiivisella navigaatiolla ja diavalikoilla. HTML-pikakuvakkeiden avulla voit luoda nopeasti sisäkkäisen diarakenteen erilaisilla tyylivaihtoehdoilla. No, HTML toimii kaikilla laitteilla, joten esitys voidaan avata jokaisessa puhelimessa, tabletissa tai kannettavassa tietokoneessa. Tietojen paljastaminen voidaan määrittää asentamalla paketti ja kutsumalla sitä YAML-otsikossa. Tässä on esimerkki:

- otsikko: "Exporing the Edge of the People Analytics Universe"
kirjoittaja: "Keith McNulty"
lähtö:
discoverjs::revealjs_presentation:
keskusta: kyllä
malli: starwars.html
teema: musta
päivämäärä: "HR Analytics Meetup London – 18. maaliskuuta 2019"
resurssitiedostot:
- darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
-starwars.png
-stormtrooper.png
-

Esityksen lähdekoodi lähetetty tänne, ja itseäänrpubs.com/keithmcnulty/hr_meetup_london'> esitys - täällä.

10 hyödyllistä R-ominaisuutta, joista et ehkä tiedä

HTML-tunnisteet R Shinyssä

Useimmat ohjelmoijat eivät hyödynnä R Shinyn HTML-tageja täysimääräisesti. Mutta nämä ovat vain 110 tunnistetta, joiden avulla voidaan luoda lyhyt kutsu HTML-toimintoa tai mediatoistoa varten. Esimerkiksi äskettäin käytin tags$audioa soittamaan "voittoääntä", joka hälytti käyttäjää, kun tehtävä on suoritettu.

Paketti kiitosta

Tämän paketin käyttäminen on hyvin yksinkertaista, mutta sitä tarvitaan kehumaan käyttäjää. Se näyttää oudolta, mutta he todella pitävät siitä.

10 hyödyllistä R-ominaisuutta, joista et ehkä tiedä

Skillbox suosittelee:

Lähde: will.com

Lisää kommentti