CONNOR HARRIS: Ende I mendoj se disa video emocionuese
prodhuar nga një konsulencë profesionale që përdor R shumë në punën e saj.
>> Transmetuesi: Çfarë është prapa statistikave, analytics, dhe visualizations
atij sotme shkencëtarët ndritura të dhënave dhe liderët e biznesit mbështetet në
për të marrë vendime të fuqishme?
Ju nuk mund të shohin gjithmonë atë.
Por është aty.
Ajo që quhet R, burim të hapur R-- gjuhë programimi statistikore
se ekspertët e të dhënave bota mbi përdorimin e për çdo gjë
nga hartave të gjerë shoqëror dhe trendet e marketingut në internet
për zhvillimin financiar dhe klimë Modelet që ndihmojnë të përzënë ekonomitë tona
dhe komunitetet.
>> Por çfarë është saktësisht R dhe ku ka filluar R?
Mirë fillimisht, R filluar këtu me dy profesorë
i cili donte një statistikore më të mirë platformë për studentët e tyre.
Kështu ata krijuan një modeluar pas gjuhës statistikore S.
Ata, së bashku me shumë të tjerë, mbajtur duke punuar në dhe duke përdorur R,
duke krijuar mjete për R dhe gjetjen aplikimet e reja për R çdo ditë.
>> Në sajë të kësaj është përpjekje në mbarë botën komunitetit,
R mbajtur në rritje me mijëra e user-krijuar bibliotekat ndërtuara
për të rritur funksionalitetin dhe R Turma-burim cilësisë validation
dhe mbështetje nga më të njohur udhëheqësit e industrisë në çdo fushë që
përdor R. E cila është e madhe, sepse R është më e mira në atë që bën.
Nis të lulëzojë ekspertë shpejt dhe lehtë interpretuar, ndërveprojnë me,
dhe kujtoj të dhënat e tregon e tyre të shpejtë komunitet në rritje të përdoruesve në mbarë botën R
dhe të shohim se si burim të hapur R vazhdon të formës
e ardhmja e statistikore Analiza e të dhënave dhe shkenca.
>> CONNOR HARRIS: OK, e madhe.
Pra prezantimin tim do të jetë pak më të kthjellët.
Kjo nuk do të përfshijë atë shumë muzikë emocionuese sfond.
Por, siç e patë në video, R është lloj e një gjuhe të përgjithshme të programit qëllim.
Por ajo u krijua kryesisht për punë statistikore.
>> Pra, është e projektuar për statistika, për analizën e të dhënave, për të dhënat e minierave.
Dhe kështu që ju mund të shihni këtë në një shumë të zgjedhjet projektimit që krijuesit e R
bërë.
Është projektuar për masë të madhe, njerëz që nuk janë
ekspertë në programimin, i cili janë vetëm picking up programimit
në anën kështu që ata mund të bëjnë punën e tyre në shkencë shoqërore apo në statistika
apo çfarëdo.
>> Ajo ka një shumë të shumë dallime të rëndësishme nga C.
Por sintaksë dhe paradigmat që përdor të gjerë të njëjta.
Dhe ju duhet të ndiheni mjaft të shumë në shtëpi drejtë të fjalës.
Është një gjuhë e domosdoshme.
>> Mos u shqetësoni shumë për këtë në qoftë se ju nuk e dini termin.
Por ka një dallim në mes të domosdoshme, deklarative,
dhe funksionale.
Domosdoshme thjesht do të thotë që ju bëni Deklaratat që janë në thelb urdhëron.
Dhe pastaj përkthyesi ose kompjuter ndjek ato një nga një.
Është shtypur dobët, ka nuk ka Deklaratat lloji në R.
>> Dhe pastaj linjat në mes të llojeve të ndryshme
janë pak më të lirshme se ata janë në C, per shembull.
Dhe siç thashë ka objektet shumë të gjerë
për grafikët, për statistikore analiza, për të dhënat e minierave.
Këto të dyja janë ndërtuar në të gjuhën dhe, siç tha video:
mijëra e bibliotekave të palës së tretë që ju mund të shkarkoni dhe të përdorni falas
me kushte shumë të lirshme licencës.
>> Pra në përgjithësi, unë do të rekomandojë që ju të shikoni në këto dy libra
në qoftë se ju jeni duke shkuar për të punuar në R. One prej tyre është zyrtar R fillestar të
udhëzues.
Është mbajtur nga zhvilluesve kryesore të R.
Ju mund ta shkarkoni atë përsëri, pa i ngarkuar dhe ligjërisht në këtë link atje.
Të gjitha këto slides janë duke shkuar për të shkuar deri në internet, në faqen e internetit CS50
pasi kjo është bërë.
Pra, nuk ka nevojë për kopje gjëra poshtë çmendurisht.
>> Tjetra është a teksteve shkollore nga Cosma Shalizi,
i cili është profesor në statistikat Carnegie Mellon, i quajtur avancuar të dhënave
Analiza nga një Pikë elementare e parë.
Kjo nuk është kryesisht një libër R.
Është një libër dhe statistika kjo është një libër Analiza e të dhënave.
Por kjo është shumë e kuptueshme për njerëzit që kanë një sasi e vogël e dijes statistikave.
>> Unë kurrë nuk kam marrë një kurs formal.
Unë vetëm e di copa dhe pjesë nga subjekte të ndryshme aleate
që unë kam marrë kurse në.
Dhe unë kam qenë në gjendje për të kuptuar ajo shumë mirë.
>> Të gjitha shifrat janë dhënë në R. Ata janë bërë në R
dhe ata gjithashtu kanë Listimet kodin poshtë çdo figurë që ju them
si ju bëni çdo figurë me kod R.
Dhe kjo është shumë e dobishme në qoftë se ju jeni duke u përpjekur të imitojnë
disa figura të shihni në një libër.
>> Dhe pa përsëri pagesë stat.cmu.edu/cshalizi/ Na vjen keq,
që duhet të çaj cshalizi Tilde.
Unë do të bëjë të sigurt për të korrigjuar atë kur slides zyrtare të shkojnë deri.
/ ADAfaEPoV cila është vetëm akronim i titullit librit.
>> Pra përgjithshme caveats-- R ka një shumë të aftësive.
Unë jam vetëm duke shkuar për të të jetë në gjendje për të mbuluar sipërfaqja e një shumë gjëra.
Edhe pjesa e parë e seminarit do të jetë diçka e një hale të dhënave.
Unë jam mjaft i keq për këtë.
Në thelb, unë jam duke shkuar për prezantoj me një shumë gjëra
drejtë të fjalës, duke shkuar sa më shpejt të jetë e mundur.
Dhe pastaj ne kemi marrë për pjesë e fun, i cili është
demo ku unë mund të ju tregojnë gjithçka se ne kemi biseduar për në ekran.
Dhe ju mund të luajnë rreth në tuaj.
Kështu që nuk do të jetë një shumë e sende teknik hedhur deri këtu.
Mos u shqetësoni për kopjim të gjitha që poshtë.
Për shkak se një, ju mund të merrni të gjitha sende në faqen e internetit CS50 mëvonshme.
Dhe B, kjo nuk është e vërtetë se e rëndësishme për të mësuar përmendësh këtë nga slides.
Është më e rëndësishme që ju të merrni disa objektit intuitive me të
dhe që vjen nga vetëm duke luajtur rreth.
>> Pra, pse të përdorni R?
Në thelb, në qoftë se ju keni një projekt që përfshin të dhënat e minierave grupe të mëdha, të dhënat e
vizualizimi, ju duhet të përdorin R. Nëse ju jeni
duke bërë analiza të komplikuara statistikore, që do të jetë e vështirë për të në Excel,
për shembull, ajo do të gjithashtu të good-- edhe
në qoftë se ju jeni duke bërë statistikore Analiza që është automatizuar.
Le të thonë se ju jeni mbajtjen e një faqe interneti.
Dhe ju doni të lexoni log server çdo ditë dhe të përpilojnë një listë,
si vendet kryesore që përdoruesit tuaj janë të ardhur nga,
disa statistika përmbledhëse për sa kohë ata shpenzojnë në web faqen tuaj apo çfarëdo.
Dhe ju doni të drejtuar këtë çdo ditë.
>> Tani në qoftë se ju jeni duke bërë këtë në Excel, ju do të keni për të shkuar në log server tuaj,
import se në një Excel dhënave,
drejtuar të gjitha analizat e me dorë.
Me R, ju vetëm mund të shkruani një script.
Orari atë për të drejtuar çdo ditë nga sistemi juaj operativ.
Dhe pastaj çdo natë at 2:00 AM, ose sa herë që ju të planifikojë atë për të kandiduar,
ajo do të shoh nga tuaj trafikut në internet për atë ditë.
Dhe pastaj nga ditën tjetër, ju do të kanë këtë, raport i ri me shkëlqim
apo çfarëdo me të gjitha të informacion ju kërkuar.
>> Pra, në thelb R është për Cisco programimit kundrejt analizave Cisco.
Paraprak është bërë.
Le të marrë në gjërat e vërtetë.
Pra, ka tre reale Llojet në gjuhën.
Ka lloj numerike.
Nuk është lloj i një dallimi në mes integers dhe pikat lundrues,
por jo të vërtetë.
Ka një karakter tipit, e cila është vargjet.
Dhe ka një logjike tipit, e cila është Booleans.
>> Dhe ju mund të konvertohet në mes të llojeve të duke përdorur këto funksione si numerike,
si karakter, si logjike.
Në qoftë se ju e quani, për shembull, si numerikë në një varg,
ajo do të përpiqet për të lexuar atë varg si një numër, në të njëjtën mënyrë
që a2i dhe scanf të bëjë, dhe C. Në qoftë se ju e quani si numerikë në vërtetë apo e rreme
ajo do të konvertohet në 1 ose 0.
Në qoftë se ju e quani si karakter në çdo gjë ai do të
kthyer atë në një Përfaqësimi string.
>> Dhe pastaj ka vektorët dhe matricat.
Pra, vektorët janë në thelb 1 vargjeve dimensionale.
Ata janë ato që ne e quajmë vargjeve në C. Matricat, 2 vargjeve dimensionale.
Dhe pastaj më të lartë Vargjeve dimensionale ju mund të
3, 4, 5 ose dimensionet çfarëdo e vlerave numerike, e vargjet,
Vlerat e logjike.
>> Ju gjithashtu keni listat të cilat janë një lloj i array asociative.
Unë do të merrni në atë një grimë.
Pra, një gjë e rëndësishme që udhëtime njerëzit deri në R
është se nuk ka vërtetë, llojet e pastër atomike.
Nuk ka dallim në mes aktual një numër, si një vlerë numerike,
dhe një listë e vlerave numerike.
Vlerat numerike nuk janë në fakt njëjtë si vektorët e gjatësisë 1.
Dhe ky ka një numër implikime të rëndësishme.
Një, kjo do të thotë që ju mund të bëni gjëra shumë lehtë që përfshijnë
si duke shtuar një numër në një vektor.
R do të në thelb figurë se çfarë nënkuptoni me këtë.
Dhe unë do të shkoj në se në një të dytë.
Kjo gjithashtu do të thotë se nuk ka asnjë mënyrë për llojin checker-- në masën
se diçka si kjo ekziston në R-- për të treguar
kur ju keni kaluar në vlerën e vetme kur ajo pret një grup ose anasjelltas.
Dhe kjo mund të shkaktojë disa i rastësishëm problemet që unë u përplas kur
Unë kam qenë duke përdorur R gjatë punës sime të verës.
Dhe nuk ka vargjeve të përziera-lloj.
Pra, ju nuk mund të ketë një grup ishin Elementet e para është, unë nuk e di,
string "Gjoni" dhe Elementi i dytë është numri 42.
Nëse ju të përpiqet të bëjë atë, atëherë ju do të merrni gjithçka konvertuar vetëm për një varg.
Pra, ne kemi varg Gjoni, string 42.
>> Sintaktik aq e pazakontë features-- më e R Sintaksa është shumë e ngjashme me C.
Ka disa dallime të rëndësishme.
Typing është shumë i dobët.
Kështu që nuk ka deklarata të ndryshueshme.
Caktimi përdor çuditshme Operatori gabimi më pak se vizë ndarëse.
Komentet janë me shenjën hash.
I guess tani ditë ne e quajmë atë hashtag edhe pse kjo nuk është e vërtetë nuk accurate--
plagë të dyfishtë.
>> Mbetjet modulare janë me shenja %%.
Ndarja numër i plotë është me% /% që është shumë e vështirë për të lexuar, kur ajo është projektuar
deri në ekran.
Ju mund të merrni vargjet e integers me dy pika.
Pra 2,5 do të ju jap një vektor të gjithë numrat 2 deri në 5.
>> Vargjeve janë një-indeksuar, cila vida shumë njerëz
në qoftë se ata janë nga më gjuhë tipike programimit,
si C, ku shumica e gjërat janë zero-indeksuar.
Përsëri, ky është vendi ku trashëgimia R si një gjuhë për si jo
Programuesit profesionale vjen në.
Nëse ju jeni një sociolog ose një ekonomist apo diçka
dhe ju jeni duke u përpjekur për të përdorur R në thelb si një zëvendësues
në tuaj më të rëndësishme punë profesionale,
ju jeni do të gjeni një-indeksimin pak më e natyrshme.
Sepse ju filloni duke numëruar në 1 në jetën e përditshme, jo 0.
>> Për-unazore, kjo është e ngjashme me foreach ndërtuar në PHP,
të cilën ju do të merrni të mësojnë in-- shumë shpejt.
E cila është për vlerën në vektor dhe atëherë ju mund të bëni gjëra me vlerë.
Audienca: Kjo është ardhur deri në leksion.
CONNOR HARRIS: Oh, kjo është dalë leksion, i shkëlqyer.
Audienca: Detyra, është ajo duhet të tregojnë nga djathta në të majtë?
CONNOR HARRIS: Nga djathta në të majtë, po.
Ju mund të mendoni për atë si vlera të e drejta shoved në variabël
në të majtë.
Audienca: OK.
>> CONNOR HARRIS: Dhe së fundi Funksioni Sintaksa është pak e çuditshme.
Ju keni emrin funksion foo, caktuar për këtë funksion fjalen, e ndjekur
nga të gjitha argumentet dhe pastaj trupi i funksionit pas kësaj.
Përsëri këto gjëra mund duket pak e çuditshme.
Ata do të bëhet natyrë e dytë pas ju punoni me gjuhë për një grimë.
Pra vektorëve, mënyra ju të ndërtuar një vektor
është që shkruani C, e cila është një fjalen, atëherë të gjithë numrat që ju doni ose strings
apo çfarëdo.
Argumentet të jenë vektorë.
Por array rezultuar merr rrafshuar.
Pra, ju nuk mund të ketë vargjeve aty ku disa elemente janë numra të vetme
dhe disa elemente janë të vetë vargjeve.
>> Pra, nëse ju përpiqeni për të ndërtuar një array ishin elementi i parë është 4
dhe elementi i dytë është 3,5 grup ju do të
vetëm për të marrë një rrjet tre elemente, 4,3,5.
Ata nuk mund të jenë të tipit të përzier.
Nëse ju provoni për të lexojnë ose të shkruajnë jashtë kufijve të një vektor
ju do të merrni këtë vlerë quhet NA një e cila qëndron për një vlerë të humbur.
Dhe kjo është menduar për si statisticienët që
janë duke punuar me të dhënat jo të plota grupe.
>> Nëse ju aplikoni një funksion që është menduar për të marrë vetëm një numër në një grup
atëherë ajo që ju do të merrni është, funksion do hartë mbi rrjet.
Pra, nëse funksioni juaj le të themi merr një numër dhe e kthen atë katrore.
Ju aplikoni që në grup 2,3,5 Çfarë ju do të merrni është array 4,9,25.
>> Dhe kjo është shumë e dobishme sepse kjo do të thotë ju
nuk kanë për të shkruar për sythe për bërë gjëra shumë të thjeshta si të aplikoni
një funksion për të gjithë anëtarët e një grup të të dhënave.
E cila në qoftë se ju jeni duke punuar me të madhe grupe të të dhënave, ju duhet të bëni shumë.
Funksionet binare janë hyrje e zbatuara nga hyrja.
Unë do të merrni në atë.
Ju mund të përdorni ato me vargjeve ose vektorët me kllapa katrore.
Kllapa katrore kështu emri vektor 1 do t'ju japë elementin e parë.
Emri Vector kllapa katrore 2 do t'ju japë elementin e dytë.
>> Ju mund të kalojë në një vektor e indekseve dhe ju do të
të kthehet nga thelb një faktor nën.
Kështu që ju mund të bëni vektoriale kllapa emrin C, 2,4 dhe ju do të merrni nga një vektor që përmban
e dytë dhe të katërt elementet e vektorit.
Dhe në qoftë se ju doni vetëm një statistikë të shpejtë përmbledhje
i nje vektori si interquartile varg, mesatare, maksimum, çfarëdo,
ju thjesht mund të shtypni përmbledhje Emri vektoriale dhe për të marrë atë jashtë.
Kjo nuk është me të vërtetë e dobishme në programimit por nëse ju jeni duke luajtur
rreth grupe të dhënave, është i dobishëm.
>> Matrices-- thelb Vargjeve të lartë dimensionale.
Ata kanë këtë sintaksë të veçantë simbol.
Matrix me një grup që merr mbushur in-- Na vjen keq, matricës me të dhënat,
Numri i rreshtave, numri i kolonave.
Kur ju keni disa të dhëna, ajo mbush në array thelb do fund e krye
për herë të parë.
Pastaj majta në të djathtë.
Pra, si kjo.
Dhe R ka ndërtuar në shumëzime matricës,
dekompozim fantazme, Diagonalization, shumë gjëra.
Në qoftë se ju doni më të lartë dimensionale vargjeve, kështu 3, 4, 5,
apo çfarëdo dimensionet ju mund ta bëni atë.
Sintaksa është grup i zbehtë është e barabartë me C, atëherë lista e dimensioneve.
Pra, nëse ju doni një koleksion 4 dimensionale me dimensione 4, 7, 8, 9, array,
dim është e barabartë me C (4,7,8,9).
>> Ju hyni në vlerat e vetme me kllapa presje hyrja e parë e hyrjes të dytë.
Ju mund të merrni të gjithë feta i rreshtave ose kolona.
Me këtë sintaksë jo të plotë është vetëm rresht numrin presje apo kolonë presje
numër.
Pra, listat janë një lloj i vektorit të lidhur.
Ata kanë sintaksë e tyre këtu.
Përsëri nuk çmendurisht kopje të gjithë këtë poshtë.
Kjo është vetëm mënyrë që njerëzit të shkuar nëpër slides më vonë
kanë këtë të gjithë në një referencë të bukur.
Dhe kjo do të bëhet dikur shumë e natyrshme Unë në fakt ecin nëpër popull.
Kështu që listat një e vargjeve të lidhura thelb.
Ju mund të hyni me vlerat Emri lista, shenja e dollarit, kyç.
Pra, nëse lista juaj është quajtur foo, atëherë ju mund të përdorni atë si kjo.
Ju mund të merrni një të tërë palë kyç vlerë të duke kaluar në indeks katror kllapa.
Nëse keni lexuar nga një jo-ekzistente kyç, ju do të merrni null.
Kjo nuk do gabim.
Gjë është, R do të bëjë si shumë me null si ajo mund.
Dhe kjo mund të thotë se në qoftë se ju jeni nuk pret për të marrë null jashtë
e disa lista lexuar, ju do të merrni disa Gabimet paparashikueshme tej poshtë
linja.
>> Kjo ka ndodhur me mua tim kur puna verë unë isha duke përdorur R
ku kam ndryshuar si një farë Lista është definuar në një vend
por nuk ka ndryshuar më vonë nga ana kodin që lexojnë vlerat prej saj.
Dhe kështu ajo që ndodhi ishte unë kam qenë leximi vlera null jashtë kësaj liste,
kalimin e tyre në funksione, dhe duke qenë shumë i hutuar
kur kam marrë të gjitha llojet e infinities rastit prodhues deri
në këtë funksion.
Sepse në qoftë se ju aplikoni maksimal sigurt ose funksioneve minimale të null,
ju do të merrni vlerat e pafund jashtë.
>> Korniza të dhënave, ata janë një nënklasë të listës.
Çdo vlerë është një vektor të njëjtën gjatësi.
Dhe ata janë përdorur për paraqitjen, në thelb, tavolina të dhënave.
Ka kjo sintaksë initialization.
Kjo do të gjitha, përsëri, të jetë shumë qartë kur ju merrni për të demo.
Dhe gjë e bukur për korniza të dhënave është se ju
mund të japin emra tërë kolonat dhe emra tërë rreshtave.
Dhe kështu që e bën qasjen ata pak miqësore.
Gjithashtu kjo është se si shumica e funksioneve që lexuar në të dhënat nga Excel spreadsheets
ose nga fotografi tekst, për shembull, do të lexoni në të dhënat e tyre.
Ata do të vënë atë në një lloj i kornizës së të dhënave.
Pra functions-- funksionet Sintaksa është pak i çuditshëm.
Përsëri kjo është emri i funksionit, të caktojë, këtë funksion fjalen dhe pastaj
lista e argumenteve.
Pra, ka disa gjëra të këndshme për mënyrën se si funksionon punojnë këtu.
Për një, ju në fakt mund të caktojë Vlerat e nënkuptuara në argumente të caktuara.
Kështu që ju mund të them R1 equals-- ju mund të thoni foo
është një funksion ku R1 është e barabartë me diçka nga default në qoftë se përdoruesi specifikon
ka argumente.
Përndryshe, kjo është gjithçka që ai të vënë në.
Dhe kjo është shumë i dobishëm sepse një shumë e funksioneve tona
kanë shpesh dhjetra ose qindra e argumenteve.
Për shembull ato për komplot grafikët ose komplot komplote shpërndaj
kanë argumente që kontrollojnë çdo gjë nga titulli dhe aksit
etiketat me ngjyrën e linjave të regresionit.
Dhe kështu që në qoftë se ju nuk doni për të bërë njerëzit të specifikojë
çdo një të vetme prej tyre qindra e argumenteve
kontrollin e çdo aspekt të një komplot apo një regresioni apo çfarëdo,
është mirë që të ketë këto vlera parazgjedhje.
>> Dhe pastaj ju mund të vërtetë shkruani si ju pashë përsëri këtu.
Ose të gjejnë një shembull të mirë.
Kur ju telefononi funksionet ju mund të vërtetë quajnë ato duke përdorur emrat argument.
Kështu që këtu është një shembull i ndërtuesi matricë.
Ajo merr tre argumente.
Zakonisht keni të dhëna, i cili është një vektor.
Ju keni rresht N, i cili është numri i rreshtave.
Ju keni N cols-- numrin e shtyllave.
Gjë është në qoftë se ju shkruani Rresht N barabartë çfarëdo
dhe N col barabartë çfarëdo kur ju jeni duke bërë thirrje këtë funksion,
ju në fakt mund të ndryshojë ato.
Kështu që ju mund të vënë N col parë dhe rresht N të dytë dhe kjo do të bëjë asnjë ndryshim.
Pra, kjo është një veçori e bukur pak.
>> A importit dhe eksportit.
Kjo mund të bëhet, në thelb.
Ka edhe objekte për të shkruar jashtë arbitrar R kundërshton një file binar
dhe pastaj lexoni ato përsëri më vonë.
I cili është i dobishëm në qoftë se ju jeni duke bërë një seancë e madhe interaktive R
dhe ju duhet të ruani gjëra shumë shpejt.
By default R ka një directory të punës që dosjet të shkruar jashtë në
dhe lexoni përsëri në nga.
Ju mund të shihni se me getwg, të ndryshuar atë me setdw.
Asgjë veçanërisht interesante këtu
>> Kështu që tani statistikat aktuale stuff-- regres multilinear.
Pra, sintaksë e zakonshme është pak e komplikuar.
Modeli është një objekt i madh në thelb.
Ajo merr caktuar për Lm, e cila është një thirrje funksion.
Elementi i parë, y x1 Tilde plus çfarëdo.
Sintaksa ime këtu është pak konfuze.
Unë jam mjaft i keq, kjo është mënyra standarde
se librat shkenca kompjuterike bëjë këtë.
Por kjo është pak i çuditshëm.
>> Pra, në thelb, është e LM kllapa, pika e parë
është variable-- keq, i varur x1 Tilde ndryshueshme plus x2 plus
megjithatë shumë i pavarur Variablat që ju keni.
Dhe atëherë këto mund të jetë ose vektorët, të gjithë të njëjtën gjatësi.
Ose ato mund të jenë kolonë headers në një kornizë të dhënave
se ju vetëm të specifikojë në Argumenti i dytë kornizë të dhënave.
>> Ju gjithashtu mund të specifikojë një formulë më komplekse
kështu që ju nuk keni për linear regres një një variabël të varur,
ose një vektor në një vektor të para-ekzistuese.
Ju mund të bëni, për shembull, një komponent vektor y katror plus 1
dhe regres se kundër log i një vektor tjetër.
Ju mund të printoni përmbledhjet e të Modeli me këtë komandë të quajtur
summary-- vetëm përmbledhje parens model.
Përsëri diçka tjetër unë duhet të sqaroj.
Diçka tjetër që do të korrigjohen kur slides shkojnë deri në internet.
Nëse ju vetëm dëshironi për të llogaritur një korrelacion i thjeshtë
ju mund të përdorni korrelacioni vektor 1 vektor 2 Funksioni kryesor.
Metodë është nga default Korrelacionet Pearson.
Ata janë ato standarde që ju mund të bëni.
Ka edhe Spearman dhe Korrelacionet Kendell
cilat janë disa shumëllojshmëri të mënyrë korrelacion gradë.
E pra ata nuk llogarisin produktin momente në mes vetë vektorët,
por i urdhrave rangut vektorit së.
Unë do të shpjegoj se më vonë.
>> Audienca: pyetje shpejtë
>> CONNER HARRIS: Sigurisht.
>> Audienca: Pra, kur ju jeni llogaritjes për korrelacionet e thjeshta të bëjë
ju supozojmë se ka një statistikore Rëndësia e korrelacionit?
CONNER HARRIS: Ju nuk keni për të.
Një lm është në thelb vetëm një makinë.
Ajo do të marrë në dy gjëra dhe ajo do të nxjerr nga goja
koeficientët për linjën më të mirë të arsyeshme.
Ai gjithashtu raporton standarde gabime në ato koeficientët.
Dhe kjo do të ju them, siç është ndërpres statistikisht të rëndësishme
ose ndryshim nga 0.
A është pjerrësia e mirë Linja të arsyeshme statistikisht
i ndryshëm nga zero, e të tjera.
Pra, ajo merr asgjë, unë mendoj është përgjigjja më e mirë për pyetjen tuaj.
NE RREGULL.
>> Plotting-- kështu arsyeja kryesore që duhet të përdorni R, si regresioni multilinear.
Në thelb çdo gjuhë ka disa strukturë për atë.
Dhe sintaksa sinqerisht R për regresionit është një misterioze pak.
Por komplot është vendi ku ajo me të vërtetë shkëlqen.
>> Funksioni workhorse është komplot dhe ai merr dy vektorëve, x dhe y.
Dhe pastaj ellipses qëndron për një shumë numër i madh i argumenteve opsionale që
të kontrollojë çdo gjë nga titujt ngjyra e linjave të ndryshme ose pika të ndryshme,
me llojin e komplotit.
Ju mund të keni shpërndaj komplote ose parcela linjë.
>> [Padëgjueshme] 2 vektorët të njëjtën gjatësi.
Ju mund të paraprijë këtë me bashkëngjitni kornizë të dhënat në shkrimin tuaj.
Dhe kjo do të ju lejojnë të përdorni vetëm shtyllën headers në vend të vektorëve të veçanta.
Ju mund të shtoni linjat përshtatet më mirë dhe lokale kthesa e regresionit në grafikun tuaj.
>> Këto komanda listuara këtu, linjë dhe linjat ab,
by default këto të e shkruar në pop up dritare
sepse ajo supozon se ju jeni duke përdorur R interaktive.
Nëse ju nuk jeni të mundeni shkruaj dy fotografi që
janë në të vërtetë ndonjë format që ju dëshironi.
Më vjen keq, unë kam një typo Unë vetëm e kuptoi.
Në qoftë se ju doni të hapur një tjetër pajisje grafike
ju mund të përdorni këtë funksion të quajtur PNG ose JPEG ose shumë formate të tjera të imazhit.
Dhe ju mund të shkruani në grafikët çfarëdo File name ju specifikoni.
Për të anuluar që ju keni për të use-- Unë nuk shkruaj këtë në slide--
por ka një funksion të quajtur dev dot off se nuk merr argumente.
>> Atëherë ka objekte për 3D komplot
dhe për kontur komplot në qoftë se ju doni të bëni
grafikët e dy variablave të pavarura.
Unë nuk do të marrë në këto tani.
>> Ka edhe disa objektet për animacion
ato janë zakonisht mirëmbahet nga palët e treta.
Unë kam bërë animacione me grafikët R, por unë nuk e kanë përdorur këto palë e tretë
bibliotekat.
Kështu që unë nuk mund të vërtetë të dëshmojnë për të se sa mirë ata janë.
Ajo që unë rekomandoj në qoftë se ju doni për të bërë animacione përdorur R
po ju mund të shkruani nga të gjitha korniza për animacione
dhe pastaj ju mund të përdorni një program-- palë e tretë
ato tipike janë quajtur ffmpeg ose ImageMagick-- të thur
të gjitha kornizave tuaj në një animacion.
>> Pra, kohë për demo.
Pra, nëse ju jeni duke përdorur ndonjë Unix si sistem e cila është e Linux BSD por që përdor BSD.
OS X hapur një dritare terminali dhe Type R në komandën e shpejtë.
Nëse keni R studio ose si, që gjithashtu punon.
Për përdoruesit e Windows që ju duhet të jenë të gjendje për të gjetur R në menynë Start.
Ajo duhet të quhet diçka si R x64 3 pika çfarëdo.
Hapur se deri atje.
>> Pra, tani le të më vetëm hapur një dritare terminali.
Të gjithë të drejtë, kërko.
Audienca: Command-Space
CONNER HARRIS: Command-Space, faleminderit.
Unë nuk zakonisht përdorin Macs.
Terminal, tregojnë dritare të re.
Dritare të re është settings themelore, R. Kështu që ju duhet të merrni
një mesazh i mirëpritur, diçka si kjo.
>> Kështu që unë jam duke përdorur R interaktive.
Ju gjithashtu mund të shkruani R Scripts natyrisht.
Në thelb Scripts drejtuar të njëjtën mënyrë si
në qoftë se ju jeni ulur në kompjuter shtypja në çdo vijë një në një kohë.
Pra, le të fillojë duke bërë një vektor.
Një shigjetë C 1, 2.
1, 2, 4.
OK, i sigurt.
Unë mund të bëjë font size madhe.
>> Audienca: Komanda-Plus
>> CONNER HARRIS: Command-Plus.
Command-Plus.
Të gjithë të drejtë, si është ajo?
Mirë?
NE RREGULL.
Pra, le të fillojë nga deklaruar një listë vektor.
Të bëjë një, shigjetë, C 1,2,4.
Ne mund të shohim një.
Mos u shqetësoni për kllapa atje.
Kllapa janë kështu që nëse ju të shtypura nga vargjeve shumë të gjatë, ne mund ku je.
Një shembull do të ishte nëse unë vetëm dua gamë 2 në 200.
Nëse unë shtypur një shumë array gjatë, kllapa
janë vetëm kështu që unë mund të mbani gjurmët e cila indeksi
ne jemi në qoftë se unë jam duke kërkuar përmes këtij shikimi.
Pra gjithsesi, ne kemi një.
>> Kështu që kam thënë më parë se vargjeve bashkëveprojnë shumë të bukur me, për shembull,
Operacionet unary si kjo.
Pra, ajo që ju mendoni se unë do të të marrë në qoftë se unë lloji një plus 1?
Yep.
Tani për tani unë do të bëj ky grup i ndryshëm.
Le të thonë se b c 20,40, 80.
Pra, çfarë mendoni ju kjo komandë do ta bëjë?
Shto elementet.
Dhe kështu në thelb kjo është ajo që e bën.
Pra, kjo është mjaft i përshtatshëm.
Kështu që unë si në lidhje bëj këtë. c është, le të themi, 6 herë 1 deri në 10.
Pra, çfarë unë dua të shoh përmbante, mendoni ju?
Kështu tërë multiples e gjashtë.
Tani, çfarë mendoni ju do të ndodhë në qoftë se unë bëj këtë?
Unë do të bëj këtë pak më të qartë, c, ç.
Pra, çfarë ndodh, a mendoj, në qoftë se unë bëj këtë?
një plus c.
[Padëgjueshme]
>> Audienca: Ose një gabim, ose ajo vetëm shton tre elemente e para.
>> CONNER HARRIS: Jo fare.
Kjo është ajo që kemi marrë.
Çfarë ndodh është një e shkurtër array, një, u ndërrohen.
Pra, ne mori 124, 124, 124.
Po.
Dhe në thelb, ju mund të shikoni kjo sjellje para, një plus 1,
si një nënklasë e kësaj sjelljeje, ku array shkurtër është vetëm numri
1, e cila është një grup një element.
Unë vetëm të jetë duke thënë Vector të gjitha koha në vend të grup,
sepse kjo është ajo që r Dokumentacioni zakonisht e bën.
Është një zakon i rrënjosur c.
>> OK, dhe kështu që tani ne kemi këtë koleksion.
Pra, ne kemi këtë grup, c.
Ne mund të merrni përmbledhje statistika mbi c, përmbledhje c.
Dhe kjo është e bukur.
Pra, tani le të bëjmë disa gjëra të matricës.
Le të thonë se m është një matricë.
Le të bëjë atë një tre nga tre një.
Pra nrows barabartë 3, dhe ncols barabartë 3.
Dhe për të dhënat le do-- kështu çfarë mendoni ju se kjo do ta bëjë?
>> E drejtë, kjo është një tjetër.
Është nrow dhe ncolumn.
Pra, ajo që unë kam bërë është që unë kam deklaroi një matricë tre nga tre
dhe unë kam kaluar në një grup nëntë element.
Pra, logaritmit të gjitha Elementet e një përmes nëntë.
Dhe të gjitha ato vlera të mbushur deri array-- keq?
Audienca: Këto janë bazë 10 shkrimet?
CONNER HARRIS: Jo, log është logaritmet natyrore, kështu bazë e.
Po, nëse do të donit bazë 10 log, unë mendoj se ju do të keni
për të hyni çfarëdo, ndarë nga log 10.
Dhe kështu që të dhënat e të [e padëgjueshme] vetëm mbush array, kështu lart poshtë,
pastaj majta në të djathtë.
Dhe në qoftë se ju të kërkuar për të bërë disa të tjera grup, le të themi n është matricë.
Le të bëjmë, unë nuk e di, 2 në 13.
Ose unë do të bëj diçka më interesante.
Unë do të bëj 2 deri në 4.
nrow barabartë, le të themi, 3.
ncol barabartë 4.
n.
Pra, ne kemi marrë këtë.
>> Dhe tani në qoftë se ne duam të shumohen këto, ne do të bëjmë n qind herë për qind,
sepse kjo është n.
Dhe ne kemi produkte të matricës.
Nga ata mënyrë, e keni parë se si kur unë shpalli n, 2 deri në 4
vektor mori cilat ndërrohen deri ajo e mbushur të gjithë n?
Në qoftë se ju të kërkuar për të marrë dekompozim eigenvalue,
kjo është diçka që ne mund të bëjmë shumë lehtë.
Ne mund të bëjmë Eigen n.
Dhe kështu kjo është jonë e parë ndeshen me një listë.
>> Pra, n Eigen është një listë me dy çelësat.
Vlerat, e cila është ky grup këtu.
Dhe vektorët, e cila është ky grup këtu.
Pra, nëse ju të kërkuar për nxjerrjen, të themi, kjo kolona e tretë
nga matrica eigenvectors, sepse eigenvectors janë vektorë kolonë.
Pra, ne mund të bëjmë Eigen vec n dollar shenjë vektorët, presje 3, e [e padëgjueshme].
Vec.
Është se, si ju mund të presin.
>> Pastaj thonë n herë për qind herë vec.
Pra, rezultati këtu sigurisht duket si në qoftë se ne e mori eigenvalue e tretë këtu,
që korrespondon me eigenvector tretë.
Ajo thjesht shumëzuar çdo gjë në kjo eigenvector, komponent-i mençur,
nga eigenvalue.
Dhe kjo është ajo që ne do të presim, sepse kjo është ajo që ajgenvlerat janë.
A ka dikush këtu nuk marrë algjebër lineare?
Një çift popull, OK.
Vetëm të kthehet trurin tuaj jashtë për një grimë.
Dhe me të vërtetë në qoftë se marrim Eigen n Vlerat shenja e dollarit 3 herë vec,
dhe të marrë të njëjtën gjë.
Është formatuar ndryshe si një rresht Vektori në vend të një vektor kolonë,
por punë e madhe.
Dhe kështu që ata janë në thelb të bukur gjëra që ne mund të bëjmë me matricat,
Listat e demonstruar.
Unë duhet të demonstrojnë bukur gjëra në lidhje me funksionet, si dhe.
>> Pra, le të say-- [e padëgjueshme] funksion, thirrja le
ajo Func kundër funksion n n squared-- në fakt, kjo nuk është me të vërtetë mirë.
a, b, a katror plus b.
Pra, një gjë në lidhje me funksionet, përsëri, është se ata
nuk kanë nevojë për deklarata të qarta e kthimit.
Kështu që ju mund just-- Deklarata e fundit vlerësohet
do të jetë deklaratën kthyer, ose vlera e kthyer.
Pra, në këtë rast, ne jemi vetëm duke vlerësuar një deklaratë, një plus katror b.
Kjo do të jetë vlera e kthimit parazgjedhur.
Kjo nuk dhemb për të vënë në kthehen vlerave në mënyrë eksplicite,
veçanërisht në qoftë se ju jeni që kanë të bëjnë me një Funksioni i logjikës shumë të komplikuar
rrjedhin.
Por ju nuk keni nevojë për to.
Deri tani ne mund të bëjmë funk 5, 1, dhe kjo është në thelb ajo që ju do të presin.
Diçka tjetër që mund të bëjmë, ne fakt mund të bëjmë funk b
është e barabartë me 1, një është e barabartë me 5.
Pra, nëse ne të specifikojë se cili numër këtu, Argumenti që shkon në të cilën argumenti
në funksion, ne mund të rrokullisje rreth këto vlera kudo që ne duam.
>> Audienca: A ka ndonjë arsye për të shkruar atë me b
barabartë në krahasim me vetëm duke përdorur numrat dhe presje?
CONNER HARRIS: Po, zakonisht bëni këtë në qoftë se ju kanë funksione
me një shumë të argumenteve.
Kjo shpesh mund të jetë si flamujt që ju do të vetëm
doni të përdorni në raste të rralla.
Dhe në këtë mënyrë ju mund t'ju only-- mund t'i referohet argumenteve të veçanta
që ju doni të përdorni vlerat jo-parazgjedhur për,
dhe ju nuk keni për të shkruar jashtë një bandë e flamujve barabartë rreme pas tyre.
Ose unë mund të shkruaj këtë përsëri me një vlerë e parazgjedhur si b barabartë 2.
Dhe pastaj unë mund të bëjë f funk, Unë do të bëj 4, 1 këtë herë.
Dhe 17, i cili është 4 katror plus 1, si ju mund të presin.
>> Por unë mund edhe vetëm e quajnë këtë me funk 4,
dhe unë do të merrni 18, sepse Unë nuk e specifikon b.
Pra, b merr vlerën e parazgjedhur të 2.
>> OK, kështu që tani në qoftë se ju jeni pas së bashku me demo,
shkruani këtë linjë në komandën tuaj të shpejtë dhe të shohim se çfarë vjen deri.
Në fakt, nuk e bëjmë atë.
Këtë lloj.
Ju duhet të merrni diçka si kjo.
Pra, mtcars është një ndërtuar në të dhëna caktuar për këtë demonstratë
Qëllimet që vjen with-- që vjen në nga default me ​​shpërndarjen tuaj r.
Kjo është një përmbledhje e statistikave një çështje e 1974 e revistës Motor Trendi-së
në një numër të modeleve të ndryshme të makinave.
>> Pra, ka milje per gallon, cylinders-- Unë harroj atë disp is-- kuaj-fuqi.
Ndoshta.
Nëse ju vetëm makinat Google MT, atëherë një nga rezultatet e para
do të jetë nga Dokumentacioni zyrtar r
dhe ajo do të shpjegojë të gjitha këto fusha e të dhënave.
Pra, pesha is-- wt është Pesha e makinës në ton.
Q sec është koha milje çerek.
Deri tani ne mund të bëjmë disa gjëra zbavitëse në lidhje me makinat MT është një fushë e të dhënave.
>> Pra, ne mund të bëjmë gjëra si emrat rresht, makina mt.
Dhe kjo është një listë e të gjithë rreshtat në të dhënat e përcaktuara të cilat janë emrat e makinave.
Ne mund të bëjmë colnames, makina mt këtë.
Nëse ju bëni makina mt, Indeksi i nën-numerike, si 2.
ne kemi marrë kolonën e dytë nga kjo, e cila do të jetë cilindra.
>> Audienca: Çfarë ke bërë?
>> CONNER HARRIS: I shtypur mt makina, kllapa e,
që më dha e dytë kolona nga makina mt.
Ose në qoftë se ne duam një rresht, unë mund të shtypni mtcars presje 2, për shembull.
Tjetër Raundi 2 presje, si kjo.
Dhe kjo shkon në rresht tuaj.
Ky këtu vetëm ju jep një kolonë, por kolonë si një vektor.
Unë vetëm kuptova tani unë harruar për të demonstruar
disa gjëra të ftohtë për vektorëve që ju mund të bëni me indekset.
Pra më lejoni të bërë këtë të drejtë tani.
Pra, le të bëjë c gets-- vënien kjo në pause-- 2 herë nga 1 deri ne 10.
Pra, c është vetëm do të jetë vektori 2 deri 20.
Unë mund të marrë elemente si kjo, C2.
Unë mund të kalojë në një vektor si ky, c-- le mua
përdorë emër tjetër se c, si vec c.
Në thelb, unë jam duke bërë kjo kështu që ju nuk merrni
hutuar në mes të C si një Funksioni vektor të ndërtimit,
dhe pastaj c si një emër ndryshueshme.
Kllapa vec c 4, 5, 7.
Kjo do të merrni mua nga i katërti, i pesti, dhe shtatë elementet e vektorit.
Unë mund të bëj VEC, vënë në një negativ indeksi, si negativ 4.
Që do të marrë mua nga kjo me elementi i katërt hiqet.
Pastaj në qoftë se kam kërkuar për të bërë feta, Unë mund të bëj VEC 2 deri në 6.
2 zorrës së trashë 6 është vetëm një tjetër vector, i cili është 2, 3, 4, 5, 6.
Pështyn se.
>> Pra Gjithsesi, përsëri në makina mt.
Pra, le të bëjë disa regresione.
Le të thonë se modeli gets-- le linearisht regress-- Unë nuk e di.
Së pari le të mos bashkëngjitni mtcars, natyrisht.
Pra, [e padëgjueshme] LM model, le regres milje per gallon në peshë Tilde.
Dhe pastaj kornizë të dhënave është mtcars.
Pra, modeli përmbledhje.
>> OK, kështu që kjo duket pak e komplikuar.
Por në thelb, duke parë si në qoftë se ne përpiqen për të shprehur milje per gallon
si një funksion linear i peshes, atëherë kemi marrë këtë linjë këtu,
cila kap në 37.28.
37,28 do të jenë milje teorike per gallon e një makinë që peshon zero.
Dhe pastaj për çdo ton shtesë, ju trokas rreth pesë milje per gallon
off e që.
Të dyja këto koeficienteve ju mund të shihni, gabimet standarde atje.
Dhe ata janë shumë të statistikisht i rëndësishëm.
>> Pra, ne mund të jetë shumë i sigurt për të 1 e 10 deri ne 10 negativ.
Pra 1 herë diçka për negativ 10, se në qoftë se ju bëni një makinë të rënda,
ajo do të ketë më keq milje per gallon.
Ose ne mund ta provoni disa model tjetër.
Ashtu si në vend të hapa prapa këtë në peshë,
le regres atë në log të peshës, sepse ndoshta pesha efektiv
në largësi nuk është disi lineare.
>> Kjo na dha një r katror e 0.7528.
Pra, le të provoni këtë.
Këtë herë le të bëjmë një ndryshueshme të ndryshme, too.
Model2.
Pra përmbledhje, model2.
Të gjithë të drejtë, kështu që përsëri, ne mori linjë tonë më të mirë të arsyeshme këtu.
Dhe kjo time-- kjo është thënë: në thelb se çdo herë që
rritur peshën e një makinë me një faktor prej e
ju humbni këtë shumë milje per gallon.
>> Dhe kështu kjo kohë standardi ynë mbetur gabim it-- se nuk ka rëndësi, me të vërtetë.
Gabimi mbetur standarde është në thelb vetëm gabimi standarde
që ju kanë lënë pas teje heq vijën prirje.
Dhe r ynë squared këtu është 0.81, e cila është pak më e mirë se ajo që
kemi pasur më parë, 0.52.
>> Dhe kështu që tani le të shtoni një Termi në këtë regres.
Pra, le të regres milje per gallon si në log e peshave
dhe, le ta bëjmë, milje q, çerek kohë milje.
OK, ajo duhet të ketë the-- gjithë të drejtë, qsec.
Qsec.
Actually-- vjen keq, çfarë?
Më lejoni të quajnë këtë diçka tjetër përveç model2.
Më lejoni të quajmë këtë model3.
Dhe kështu që tani ne mund të bëjmë përmbledhje model3.
Dhe kështu përsëri, kjo është në thelb çfarë ju mund të presin.
Ju keni ndërpres pozitive.
Efektive duke rritur peshë është negativ.
Dhe efektive rritjen e katërta herë milje
është pozitive, por edhe pse më pak se pesha.
Tani intuitive, ju mund të bëjë ndjenjën e këtë duke thënë mendoni për makinat sportive.
Ka një përshpejtim shumë të shpejtë, një shumë të shkurtër herë milje çerek.
Ata gjithashtu jeni do të përdorin më shumë gaz, ndërsa makina më të ndjeshme janë duke shkuar
të ketë përshpejtim të ngadalshme, më të larta kohët Mile katërta,
dhe të përdorin më pak gaz ,, kështu milje të larta per gallon.
I madh.
Dhe kështu që tani është koha për të komplot diçka si kjo.
Pra, le të do-- kështu zhveshur Kockat ne mund të bëjmë plots--
sepse unë e kam bashkangjitur këtë kornizë të dhënave më herët, ne mund të bëjmë vetëm komplote, mpg WT.
Bëni këtë pak më e madhe.
Atje, ne thelb kemi një komplot shpërndaj, por pikat
janë lloj i vështirë për të parë në këtë.
>> Unë nuk e mbani mend se çfarë i çastit Sintaksa është për ndryshimin e komplot.
Kështu që unë mendoj se kjo do të jetë një kohë e mirë për të sjellë lart,
ka një ndihmë shumë e bukur builtin tipar, ndihmë kuotat funksionojë emrin.
Ne do të sjellë deri në thelb çdo gjë që ju dëshironi.
Unë mendoj se unë në fakt do të bëj këtë lloj barabartë p për pikë komplote.
A kjo të ndryshojë ndonjë gjë?
Dhe jo, jo të vërtetë.
Në rregull.
>> Për disa arsye, kur unë e bëri këtë në kompjuterin tim një kohë më parë,
të gjitha pikat shpërndaj ishin shumë të qarta.
Gjithsesi, janë lloj shpërndaj i dukshëm?
Ka një atje.
Disa atje, disa atje.
Ju mund të lloj të shihni ata, e drejtë?
Pra, nëse ne duam të shtoni një linjë të mirë të arsyeshme në këtë komplot këtu, e cila është pak më e zhveshur
bones-- më lejoni të bëjë atë pak nicer.
Kryesore është e barabartë kundrejt peshës.
Milje per gallon.
Përsëri, ju mund të shihni se si të dobishme Argumentet fakultative janë këtu me të
nuk ka për të vënë gjërat në një mënyrë të caktuar me argumente tastierë
kur ju keni komplote, sepse këto të marrë një shumë e argumenteve.
>> Xlab barabartë me peshë, peshë, ton.
Në rregull.
OK, vërtet, kjo pajisje është të qenit një pak i bezdisshëm.
Por ju mund të shihni lloj atje lart, ka një titull grafik në anën.
Mbi këtu there's-- në fund këtu ka etiketa aks.
Unë nuk e mbani mend çastit çfarë komandat ars--
çfarë funksionet janë për të rritur madhësia e këtyre etiketave dhe tituj,
por ata janë atje.
>> Dhe kështu që në qoftë se ne duam të shtoni përputhje më të mirë të arsyeshme,
ne mund të bëjmë diçka like-- I kanë sintaksë të shkruar këtu.
Pra, mos harroni ne vetëm të shtoni modelin ishte mpg, pesha, mtcars.
Dhe kështu që në qoftë se unë të kërkuar për të shtuar një përshtatje më të mirë line, unë mund të bëjë një, modeli linjë b.
Dhe bum, ne kemi një linjë të mirë të arsyeshme.
Kjo është lloj i vështirë për të parë përsëri.
Unë jam mjaft i keq për vështirësitë teknologjike.
Por ajo shkon në thelb Top majta në të djathtë fund.
>> Dhe në qoftë se shkalla ishin më e madhe, ju mund të shihni
se ndërpres është ajo që ju mund të gjetur nga statistikat përmbledhëse
në qoftë se ju shkruani modelin përmbledhëse.
OK, kështu që unë shpresoj se gjithkush merr diçka e një ndjenjë të asaj
R është, ajo është e mirë për të.
Ju mund të bëni komplote shumë nicer se këtë në kohën tuaj, në qoftë se ju pëlqen.
>> Pra, interface funksion të huaj.
Kjo është diçka që nuk është në mënyrë tipike mbuluar në ligjërata hyrëse
ose ndonjë gjë hyrëse për r.
Kjo nuk është e mundshme që ju do të jeni nevojë për të.
Megjithatë, kam gjetur atë të dobishme në projektet e mi në të kaluarën.
Dhe nuk ka asnjë të mirë tutorial për atë në internet.
Kështu që unë jam vetëm do të ju të gjithë nxitojnë me këtë
dhe pastaj ju jeni të lirë për të lënë.
Dhe kështu të huaj Ndërfaqja funksion është çfarë
ju mund të përdorni për të thirrur për të parë funksionon me një R. brenda vendit,
R është ndërtuar në aritmetikë C. R është vetëm 64-bit pikë lundrues aritmetike C-së,
i cili është lloji i dyfishtë [e padëgjueshme].
Dhe ju mund të dëshironi të bëni kjo për një bandë e arsyeve.
Për një, R është interpretuar, është mos përpiluar deri në kodin e makinës.
Kështu që ju mund të rishkruaj tuaj unazore të brendshme në C dhe pastaj të merrni
Përparësia e përdorimit të R. Like kjo është pak më i përshtatshëm se C.
Ajo ka grafikët më të mirë objektet dhe gjësend.
Dhe ndërsa ende janë në gjendje për të marrë shpejtësi të lartë nga sythe brendshme,
i cili është ku ju me të vërtetë nevojë për të.
>> Ripërdorimin bibliotekat ekzistuese C, kjo është gjithashtu e rëndësishme.
Nëse keni ndonjë bibliotekë C për si, Unë nuk e di, Furierit transformon,
ose disa shumë Archean Procedura e përdorur statistikat
në astrofizikë lartë të energjisë apo diçka, unë nuk e di.
Astrofizika të lartë të energjisë nuk është edhe një think, unë mendoj.
Por ju mund të bëni që në vend që për të shkruar një port amtare R prej tyre.
Dhe në the-- dhe përsëri, si në qoftë se ju shikoni në shumicën e bibliotekave R parazgjedhur,
në internals, internals janë do të përdorin funksionin e huaj
ndërfaqe shumë gjerësisht.
Ata do të kenë gjëra të tilla si Furierit transformon apo informatikë korrelacion
koeficientët e shkruar në C, dhe ata do të vetëm kemi R mbështjellësve rreth tyre.
The interface është një pak e vështirë. Unë mendoj
Vështirësia e saj është ekzagjeruar në një shumë prej udhëzimeve ju do të gjeni.
Por megjithatë, kjo është pak konfuze.
Dhe unë nuk kam qenë në gjendje të gjeni një tutorial të mirë për të,
kështu që kjo është atë të drejtë tani.
Përsëri, kjo e tërë segment është më shumë për referencë më vonë.
Mos u shqetësoni për kopjim gjithçka poshtë tani.
Pra, udhëzimet e mëposhtme janë për sistemet Unix-si,
Linux, BSD, OS X. Unë nuk e di se si kjo punon në Windows,
por ju lutem vetëm nuk e bëni tuaj Projekti përfundimtar në Windows.
Ju me të vërtetë nuk duan të.
Unix është i vendosur shumë më mirë up për programimin rastësor.
Pra, në thelb të huaj Ndërfaqja funksion.
Nëse ju dëshironi të shkruani një C funksion për përdorim me R,
ajo ka për të marrë të gjitha Argumentet si pointers.
>> Pra, për vlerat e vetme, kjo do të thotë se është theksuar me vlerën.
Për vargjeve, kjo është një tregues me elementin e parë, që
është ajo që emrat array vërtetë do të thotë.
Përsëri, kjo është diçka që ju duhet të keni goxha tërësisht poshtë pas f vendosur pesë.
Emrat Array janë vetëm pointers me elementin e parë,
Lloji lundrues-pikë është e dyfishtë.
Dhe funksioni juaj ka për t'u kthyer pavlefshëm.
E vetmja mënyrë që ajo mund të në fakt tregojnë R çfarë ka ndodhur
është duke modifikuar kujtesës që R dha atë përmes funksionit të huaj
ndërfaqe.
>> Kështu që unë kam shkruar këtë shembull këtu, kjo është
një funksion që llogarit përdorimit dot produkt i dy vektorëve.
Ajo merr dy argumente, vec1, vec2, të cilat janë vetë vektorët,
dhe pastaj n, e cila eshte nje gjatësia, sepse përsëri,
R ka ndërtuar në [e padëgjueshme] për të mësuar gjatësia e vektorëve, por C nuk ka.
Në C, vektorët është një arbitrar copë kufizuar e kujtesës.
Pra mënyrë ju mund të llogaritur dot produkte
është vendosur vetëm jashtë këtij parametri në zero dhe pastaj iterate nëpër
nga 1 deri në yll n, sepse n është një tregues për gjatësinë,
vetëm të shtoni diçka për kjo jashtë parametër.
Dhe kjo mund të jetë praktikë e mirë në qoftë se ju jeni duke shkuar për të bërë
kjo për të shkruar dy funksione të veçanta C.
Njëri prej tyre has-- një prej tyre vetëm merr argumentet dhe llojet
se ata do të jenë zakonisht në C.
>> Pra, Ai merr një koleksion Argumentet si pointers.
Por argumentet-vlerë të vetme si n, ajo merr vetëm si vlera me kopje,
pa pointers.
Dhe pastaj kjo nuk ka [Padëgjueshme] jashtë akrep.
Dhe pastaj ju mund të keni një tjetër, në thelb,
Funksioni këmishë që në thelb trajton kërkesat
e funksionit të huaj ndërfaqe për ju.
>> Mënyrë që ju të telefononi këtë në R është, një herë ju keni funksionin tuaj të shkruar në C,
ju Type R shlib cmd, R bibliotekë komandë të përbashkët,
foo dot c, apo çfarëdo emri juaj skedë është,
dhe OS nuk derdh në terminalin R.
Dhe kjo do të krijojë një Biblioteka quajtur foo dot kështu.
Dhe pastaj ju mund të ngarkesës atë në script tona ose interaktive
me komandën dyne dot ngarkesës.
Pastaj ka një funksion në R quajtur dot c.
>> Kjo merr argumente që janë të për herë të parë emri i funksionit në C
që ju doni të telefononi.
Dhe pastaj të gjitha parametrat në atë funksion,
kanë të jetë në mënyrë të duhur.
Ju duhet të përdorni këto lloj funksione të detyrimit si numër i plotë, si
të dyfishtë, si karakter dhe si logjike.
Dhe pastaj kur kthen Lista, e cila përsëri është vetëm
një grup i lidhur emrat e parametrave dhe vlerat
pasi funksioni i ka drejtuar.
>> Pra, në këtë rast, sepse dot stimuloj ka Argumentet vec1, vec2, dhe int n, n jashtë.
Për dot c kemi dot stimuloj, emri i funksionit
ne jemi duke bërë thirrje, vec1, vec2, tip detyroj.
Gjatësia e as vektor, Unë vetëm zgjedhur vec1 në mënyrë arbitrare.
Ajo do të jetë më e fuqishme për të thënë s Gjatësia min numër i plotë vec1, gjatësia vec2.
Pastaj vetëm si zero të dyfishtë, sepse ne të vërtetë nuk
kujdes se çfarë shkon në të nga parametri sepse ne jemi
vendosur atë në zero gjithsesi.
>> Dhe pastaj rezultatet do të jetë një grup i madh i lidhur në thelb
vec1 është çdo gjë, vec2 është çfarëdo.
Por ne jemi të interesuar në jashtë, kështu që ne mund të merrni atë jashtë.
Kjo është përsëri një shembull shumë lodër e një ndërfaqe të funksionit të huaj.
Por në qoftë se ju duhet të llogaritin dot Produktet e vektorëve masive në sythe,
ose në qoftë se ju duhet të bëni diçka tjetër në një lak,
dhe ju nuk doni të mbështetet në R, të cilat nuk kanë një grimë e lart
ndërtuar në të, kjo mund të jetë e dobishme.
>> Përsëri, kjo nuk është zakonisht një temë hyrës në R.
Kjo nuk është dokumentuar shumë mirë.
Unë jam vetëm duke përfshirë edhe atë për shkak Kam gjetur të dobishme në të kaluarën.
Praktikat Pra, të këqija.
Kam përmendur se ka një për lak në funksion.
Në përgjithësi ju nuk duhet, në gjuha, nuk e përdorin atë.
Bazuar në sa R ​​zbaton përsëritje nga brenda, ajo mund të jetë i ngadalshëm.
Ata vetëm të duken të shëmtuar.
>> R trajton vektorët shumë të bukur, kështu që shpesh ju nuk keni nevojë të përdorni atë.
Atëherë ju mund të zakonisht zëvendësojë një vektor shpesh
me këto funksione quajtur të lartë Funksionet e rendit, Harta, Ulja,
Gjej, ose Filter.
Unë do të jap vetëm disa shembuj të asaj që këto bëjnë.
Harta është një funksion i lartë urdhër sepse ajo merr një funksion si një argument.
Kështu që ju mund t'i jepte një funksion, ju mund t'i jepte një rrjet,
dhe ajo do të zbatojë funksionin në çdo element të vektorit
dhe kthimin e array re.
Ulja, në thelb ju jep ajo një grup, ju jepni atë
një funksion që merr dy argumente.
Ajo do të zbatojë funksionin pari, Argumenti i parë me disa vlera starter.
Atëherë për këtë rezultat në të dytin.
Pastaj në atë të rezultojë në të tretë, pastaj në atë të rezultojë në e katërt.
Dhe pastaj të kthehen kur ajo merr deri në fund.
Kështu për shembull, në qoftë se ju doni të llogaritur shuma e të gjitha elementeve
në një rrjet, se ju mund të telefononi reduktuar me [e padëgjueshme] zvogëlojë një shtesë
funksion, si funk a, b, të kthehet një plus b.
Dhe pastaj të fillojë një vlerë prej 0.
>> Dhe të gjitha këto, ju mund t'i gjeni përshkruar në dokumentacionin R,
në çdo libër mësimi në programimit funksional.
Ka edhe kjo klasë e Funksionet e quajtur zbatohen funksione,
që unë nuk-- ata janë pak e vështirë për të shpjeguar,
por në qoftë se ju shikoni në [e padëgjueshme] rezervuar që kam cituar në fillim,
ai i shpjegon ato mjaft mirë në Shtojca e tij në R programimin.
Më shumë për praktikat, bashkëngjitur të vektorëve.
Po?
Unë mendoj se duhet korrigjuar atë.
Në këtë linjë të parë, shigjeta vec, që shigjetë nuk duhet të jetë atje.
Ju mund të caktojë në një vektor, përsëri, duke marrë gjatësinë e saj plus 1
dhe caktimin e disa vlera me atë.
Që do të zgjasë vektor, ose ju mund të bëjë është e barabartë VEC C, NewValue vec.
Përsëri, në qoftë se ju përdorni C me një argument si një vektor,
hierarkia rezultuar merr rrafshuar.
Pra, ju do të merrni vetëm një vektor që është zgjatur nga 1.
Kurrë nuk e bëjnë këtë.
>> Arsyeja pse ju nuk duhet ta bëjë këtë është kjo.
Kur ju të ndajë një vektor, atë i jep një copë të caktuar të memories.
Në qoftë se ju të rritur atë madhësi vektoriale, ai ka për të rialokuar vektori
diku tjeter.
Dhe kështu rialokim është mjaft i shtrenjtë.
Unë nuk do të shkoj në detaje se si përcaktuesve kujtesës janë zbatuar
në nivelin e sistemit operativ, por ajo merr shumë kohë
për të gjetur një copë të ri të kujtesës.
Dhe gjithashtu, në qoftë se ju jeni ri-caktimin shumë dhe shumë
e në mënyrë progresive më të mëdha chunks, ju deri në fund
me diçka të quajtur fragmentimi kujtesës,
ku kujtesës në dispozicion është ndarë në shumë blloqe të vogla
në pikën përcaktuesve kujtesës e parë.
Dhe ajo merr vështirë dhe më e vështirë për të gjetur kujtesën për gjëra të tjera.
Pra, në vend, në qoftë se ju duhet të bëni këtë, në qoftë se ju duhet të rritet një vektor nga një fund
për të ardhshëm, në vend të bashkëngjitur me të vazhdimisht, ju duhet të para-ndajë atë.
Shigjetë vec, gjatësia vektor barabartë 1,000, apo çfarëdo.
>> Dhe atëherë ju vetëm mund të caktojë të vlerave një e vektorit
një kohë pasi ju keni ndarë atë një herë.
Unë u zhvillua në këtë, përsëri, punën time verore kur unë shkruaja diferencial NRA
Solver ekuacion.
Jo simbolik numerike.
Ideja është se një herë ju keni një vlerë për zgjidhjen tuaj,
ju përdorni atë për të llogaritur një tjetër.
Pra, natyrore ime naive Prirja është për të thënë OK,
kështu që unë do të fillojë me një vektor kjo është një vlerë të konsiderueshme.
Llogaritur nga se vlera e ardhshëm që shkon mbi zgjidhje vektor tim,
dhe append atë.
>> Krijo diçka tjetër, append atë.
Ajo shkoi shumë, shumë ngadalë.
Dhe një herë kam kuptuar këtë dhe unë ndryshuar sistemin tim
nga bashkëngjitur në këtë vektor si 10.000 deri 100.000 herë,
të vetëm para-caktimin e një vektor dhe vetëm duke me atë.
Unë kam më shumë se 1.000 shpejtësi dele deri.
Pra, kjo është një shumë e zakonshme kurth për programimin R.
Nëse keni nevojë për të ndërtuar një vektor copë me copë, para-ndajë atë.
>> Një udhëtim i përbashkët up-- kjo është e fundit e mia rrëshqitje, nuk worry-- është trajtimi gabim.
R, për të qenë i sinqertë, nuk ka me të vërtetë e bëjnë këtë shumë mirë.
Ka shumë të Problemet që mund të shfaqem.
Për shembull, në qoftë se ju merrni një grup ose nje vektor nga një funksion
që keni qenë duke pritur një të vetme Vlera që do të vijnë nga, ose anasjelltas,
dhe ju të kalojë atë në një funksion që Ju keni shkruar në pritje të një vlerë të vetme,
që mund të jetë një problem.
>> Disa funksione të caktuara kthehen null ashtu si, të themi,
leximi nga një çelësi nuk ekziston në një listë.
Por null nuk është si C ku në qoftë se ju të përpiqet për të lexuar
nga një akrep vjetër, [e padëgjueshme] të null treguesin, ajo vetëm seg gabimet
dhe në qoftë se ju jeni në Rregullues tuaj ajo ju tregon saktësisht ku ju jeni.
Në vend të kësaj, do të null do-- funksione do të bëjë gjëra të paparashikueshme
nëse ata janë null duar.
Ashtu si në qoftë se ju jeni të dorëzuar max null, ajo do të ju jap pafundësi negative.
Dhe kështu, vërtet.
Dhe kështu kjo ndodhi për mua një herë kur kam pasur
ndryshuar një bandë e fushave në strukturën time listën
herë pa ndryshuar ato në vende të tjera kur isha duke lexuar prej tyre.
Dhe pastaj kam marrë të gjitha llojet e rastit Rezultatet Infinity prodhues deri
dhe unë asnjë ide se ku ata erdhën nga.
Dhe për fat të keq, nuk ka jo i vërtetë mënyra të rreptë R
ku ju mund të thoni nëse diçka duket si ajo mund të jetë një gabim,
vetëm të ndalemi këtu kështu që unë mund të jetë disiplinuar dhe të rregulluar atë.
Megjithatë, ka diçka quajtur të ndaluar nëse nuk.
Kjo është ekuivalente për të mbrojtur C, në qoftë se ju keni folur për atë.
Unë nuk mendoj se C pohojnë është një temë leksion,
por udhëheqësi juaj seksion mund të ketë shkuar mbi të.
Dhe në qoftë se nuk ndalet në thelb merr ndonjë kallëzues, kështu që çdo deklaratë që
mund të jetë e vërtetë apo e rreme.
Dhe në qoftë se është e rreme, ajo ndalon programin e saj.
Ajo ju tregon saktësisht se çfarë ju vijë ishin në dhe çfarë kusht dështuar.
>> Dhe kjo shumë e dobishme, për shembull, kontrolluar mendje e shëndoshë, inputeve funksion.
Pra, nëse ju keni një funksion dhe ju presin, të themi,
në qoftë se ju duhet të jepni një datë, unë dua datat jetë vetëm një vektor i gjatësisë 1
dhe diku në mes të 1 dhe 31.
Dhe nëse jo, unë e di diçka ka shkuar keq.
Dhe unë zgjedh për të ndaluar atje para se kjo ka trokasin rastit mbi efektet me kod
se është e vështirë për të ndjekur përmes.
Pra, kjo është një jetë e mundur përdorin për të ndaluar, nëse jo.
>> Gjithsesi, OK.
Pra, kjo është fundi.
Thank you so much për të ardhur.
Unë jam një amator gradë në këtë.
Pra vjen keq në qoftë se ju jeni i mërzitur apo hutuar apo çfarë keni.
Unë jam i lumtur për të marrë pyetje me e-mail në connorharris@college.harvard.edu~~pobj.
Kjo vlen edhe për të gjithë shikuar këtë jetojnë ose më vonë.
Gjithashtu, edhe pse unë nuk jam një TF, unë jam gjithashtu shumë
të gatshëm për të shërbyer si një jozyrtare këshilltar për këdo që është
duke përdorur R në një projekt përfundimtar.
>> Nëse ju dëshironi për të se, atëherë vetëm bisedoni me TF tuaj
dhe pastaj shkruani një email kështu Unë di atë që ju jeni duke punuar në
dhe kështu që unë mund të ngritur takim herë me ju, nëse ju dëshironi.
Pra, përsëri, ju faleminderit shumë.
Unë shpresoj se ju ka gëzuar atë.
>> Audienca: [padëgjueshme].
>> CONNER HARRIS: Sigurisht.
>> Audienca: Çfarë lloj i një projekti do të përdorë një student CS R për?
CONNER HARRIS: Pra, nëse ju nuk jeni të bëni diçka që është thjesht në të dhënat e minierave,
për shembull, dhe ka shumë gjëra
ju mund të bëni me atë me të dhënat minierave dhe të mësuarit makinë.
Ju mund të dëshironi të përdorni për R një komponent i diçkaje.
Unë e nxora, Fillimisht, shembullin e në qoftë se ju jeni duke shkruar një faqe interneti
dhe ju doni të drejtuar automatizuar Analiza statistikore e serverit tuaj
shkrimet në një kohë të caktuar çdo ditë, që mund të jetë diçka që është
shumë e lehtë për të bërë në vetëm një të shkurtër R script që ju mund të planifikojë
për të drejtuar çdo natë, për shembull.
>> Dhe unë jam i sigurt, nëse nuk ka ndonjë arsye ju do të
dua statistikat ose aftësitë grafikët dhe e kanë këtë të kandiduar automatikisht në vend
e të pasurit për të bashkëvepruar me gjërat në Excel,
për shembull, kjo është diçka ju mund të dëshironi të përdorni R për.
Kështu që çdo shumë pyetje para se të largohet?
Nuk ka?
Të gjithë të drejtë, të mirë, përsëri, thank you you very much për të ardhur.