CONNOR HARRIS: Još uvijek sam mislim neke uzbudljive videa
proizveden od strane profesionalnog savjetovanja koji koristi R puno u svom radu.
>> Narator: Što se krije iza statistike, Google Analytics, i vizualizacije
da današnja najsvjetlije znanstvenici podataka i poslovni lideri osloniti na
da snažne odluke?
Ne može se uvijek vidjeti.
Ali, to je tamo.
To se zove R, open source R- statistički programski jezik
da su podaci stručnjaci Svijet tijekom korištenja za sve
od mapiranje širokom društvenom i marketinške trendove online
razvoju financijskog i klimu Modeli koji pomažu pogon naše ekonomije
i zajednice.
>> Ali što je točno R i odakle početi R?
Pa izvorno, R je počeo ovdje s dva profesora
koji je želio bolju statističku platforma za svoje učenike.
Tako su stvoreni jedno po uzoru nakon statističke jeziku S.
Oni su, zajedno s mnogim drugima, Stalno radimo na i pomoću R,
stvaranjem alata za istraživanje i pronalaženje novi zahtjevi za istraživanje svaki dan.
>> Zahvaljujući tome je svijetu trud u zajednici,
R rasla s tisućama korisnički stvorio knjižnica izgrađena
kako bi se poboljšala funkcionalnost i R Publika porijekla kvaliteta valjanosti
i podrška od najpriznatiji industrija lideri u svakom polju koje
koristi R. Što je super, jer je R je najbolji na ono što čini.
Pupi stručnjaci brzo i lako interpretirati, u interakciji s,
i vizualizaciju podataka pokazuje svoje ubrzano rastuća zajednica R korisnika u svijetu
i vidjeti kako open source R nastavlja oblikovati
budućnost statistički Analiza i znanost podataka.
>> CONNOR HARRIS: OK, super.
Dakle moje vlastite prezentacije će biti malo više trijezni.
To neće uključivati ​​toliko uzbudljivo pozadinsku glazbu.
Ali, kao što ste vidjeli u videu, R je vrsta općeg jezika Svrha programa.
Ali, to je stvoren uglavnom za statističku rad.
>> Dakle, to je dizajniran za statistiku, za analizu podataka, za rudarenje podataka.
I tako da možete vidjeti u puno Dizajn izbor da kreatori R
napravio.
To je dizajniran za uglavnom, ljudi koji nisu
stručnjaci u programiranju, koji samo branje gore programiranje
na strani tako da oni mogu napraviti svoj posao u društvenim znanostima ili u statistici
ili što god.
>> Ima mnogo vrlo važne razlike od C.
No, sintaksa i paradigme da koristi su uglavnom isti.
A ti bi trebao osjećati lijepo koliko kod kuće pravo od šišmiš.
To je imperativ jezik.
>> Ne brinite previše o tome Ako ne znate pojam.
No, tu je razlika između imperativ, deklarativnu,
i funkcionalan.
Imperativ samo znači da bi izjave koje su u osnovi naredbe.
A onda je tumač ili Računalo slijedi ih jednog po jednog.
To je slabo upisali, postoje nema izjava tipa u R.
>> A onda su linije između različitih vrsta
su malo više nego što izgubiti su u C, na primjer.
I kao što sam rekao postoje vrlo opsežna objekti
za grafičkim, za statističku Analiza za rudarenje podataka.
To su i ugrađeni u jezik i, kao što je video, rekao je,
tisuće treće strane knjižnica koje možete preuzeti i koristiti besplatno
s vrlo labave uvjete licence.
>> Dakle, općenito, ja bih preporučiti da pogledate ove dvije knjige
ako ćeš raditi na R. One od njih je službeni R početnike
vodič.
To održava temeljne programeri R.
Možete ga skinuti opet, besplatno naknade i pravno na taj link tamo.
Svi ovi slajdovi su ići na internetu, na web stranici CS50
Nakon što je to učinio.
Dakle, nema potrebe za kopiranje stvari dolje grčevito.
>> Drugi je udžbenik po Cosma Shalizi,
koji je statistika profesor na Carnegie Mellon, pod nazivom Advanced Data
Analiza iz Osnovna gledišta.
Ovo nije prvenstveno Ra knjiga.
To je statistika knjiga i to je analiza podataka knjiga.
No, to je vrlo pristupačna ljudima koji imate minimum znanja statistike.
>> Nikada nisam uzeo službeni tečaj.
Ja samo znam djeliće iz različitih srodnih predmeta
koje sam uzeti tečajeve.
I ja sam bio u stanju razumjeti to savršeno dobro.
>> Sve brojke su dane u R. Oni su u R
i oni također imaju kod oglasi ispod svakog lika koji ti reći
Kako napraviti svaki lik s R koda.
A to je vrlo korisno ako pokušavate oponašati
neki lik vidite u knjizi.
>> I opet free download stat.cmu.edu/cshalizi/ Žao nam je,
da treba srezati tilde cshalizi.
Pobrinut ću se da to ispraviti kada su službeni slajdovi ići gore.
/ ADAfaEPoV što je samo skraćenica naslova knjiga.
>> Dakle, općenito caveats-- R ima puno mogućnosti.
Ja sam samo će biti u mogućnosti pokriti površina puno stvari.
I prvi dio seminara će biti nešto od odlagališta podataka.
Ja sam vrlo žao zbog toga.
Uglavnom, idem vas upoznati s puno stvari
pravo isključiti šišmiš, ide što brže moguće.
A onda smo dobili zabavan dio, što je
Demo gdje mogu vam pokazati sve da smo razgovarali o tome na zaslonu.
A možete poigrati na svoju vlastitu.
Tako će biti puno tehničke stvari povratiti se ovdje.
Ne brinite o kopiranju svega što se razbije.
Jer možete dobiti sve stvari na web stranici CS50 kasnije.
I B, to zapravo nije toliko važno zapamtiti ovaj iz slajdova.
To je važnije da ste dobili neke intuitivne objekt s njim
i da dolazi iz samo igranje okolo.
>> Pa zašto koristiti R?
Uglavnom, ako imate projekt koji uključuje rudarstvo velikih skupova podataka, podaci
vizualizacija, što treba koristiti R. Ako ste
radi komplicirane statističke analize, to će biti teško u Excelu,
Na primjer, to bi Također se good-- također
ako radite statistička Analiza koja je automatiziran.
Recimo da ste održavanje web stranica.
A želite pročitati poslužitelja log svaki dan i sastaviti neki popis,
poput najboljih zemalja korisnici dolaze iz,
neki sažetak statistike o tome koliko dugo oni troše na svoje web stranice ili bilo što drugo.
A želite pokrenuti svaki dan.
>> Sada, ako ste to radili u Excel, ćeš morati ići na svoj server log,
uvesti da u Excel proračunske tablice podataka,
izvoditi sve analize ručno.
S R, možete samo napisati jednu skriptu.
Raspored je pokrenuti svaki dan iz operacijskog sustava.
I onda svake noći u 2:00 ujutro, ili kad god vi to raspored za pokretanje,
to će izgledati kroz svoje internet prometa za taj dan.
A onda sljedeći dan, vi ćete su ovu sjajnu, novo izvješće
ili bilo što sa svim Informacije koje si tražio.
>> Tako je u osnovi R za Cisco programiranje u odnosu na Cisco analize.
Prethodno je učinio.
Idemo u stvarnim stvarima.
Dakle, postoje tri stvarna vrste u jeziku.
Postoji numerički tip.
Postoji vrsta razlika između cijeli brojevi i plutajuće točke,
ali zapravo nije.
Postoji znak tip koji je žice.
A tu je logičan tip koji je logičke izraze.
>> A možete pretvoriti između vrsta pomoću ove funkcije kao numerički,
kao lik, kao i logično.
Ako nazovete, primjerice, kao brojčani na žici,
to će pokušati pročitati taj string kao broj, na isti način
da a2i i scanf učiniti, i C. Ako nazovete kao brojčani na točno ili netočno
to će se pretvoriti u 1 ili 0.
Ako poziv kao znak na bilo što to će
pretvoriti da u string.
>> A onda postoje vektori i matrice.
Dakle, vektori su u osnovi 1 dimenzionalni polja.
Oni su ono što mi zovemo polja u C. Matrice, 2 dimenzionalni polja.
A onda više dimenzionalni polja možete
imaju 3, 4, 5 dimenzije ili što god od numeričkih vrijednosti, žice,
logičkih vrijednosti.
>> Također imate popise koje su vrsta asocijativni niz.
Ja ću doći u tu malo.
Dakle, jedna važna stvar da putovanja ljude u istraživanje
da nema Pravi, čisti atomske vrste.
Nema stvarna razlika između broj, kao numerička vrijednost,
i popis numeričkih vrijednosti.
Brojčane vrijednosti su zapravo isto kao i vektori duljine 1.
A to je broj važne implikacije.
Jedan, to znači da možete učiniti stvari vrlo lako koje uključuju
kao što je dodavanje broja na vektor.
R će zapravo lik što misliš pod time.
A ja ću na to u sekundi.
To također znači da ne postoji način za tip checker-- u opsegu
da se nešto slično postoji u R- reći
kada ste prošli u jednoj vrijednosti kada je očekuje polje ili obratno.
A to može uzrokovati neke čudno nevolje koje sam naletio kada
Sam bio koristeći R tijekom moje ljetni posao.
I ne postoje mješoviti tip polja.
Dakle, ne možete imati niz bile Prvi elementi se, ne znam,
string "Ivan", a Drugi element je broj 42.
Ako pokušate to učiniti, onda ćete dobiti sve samo pretvoriti u niz.
Dakle, imamo niz Ivan, niz 42.
>> Tako neobično sintaktička features-- najviše R sintaksa je vrlo sličan C.
Postoji nekoliko važnih razlika.
Tipkanje je vrlo slaba.
Dakle, nema varijabilni deklaracije.
Dodjela koristi čudno Operator pogreška manja od crticom.
Komentari su s oznakom hash.
Mislim da sada dana mi to zovemo hashtag iako to zapravo nije accurate-- ne
dvostruki udarac.
>> Modularni ostaci su s %% znakovima.
Cijeli broj podjela je s% /%, što je vrlo teško čitati kad je usmjeren
se na zaslonu.
Možete dobiti raspone integers s debelog crijeva.
Tako 2,5 će vam dati vektor svih brojeva 2. do 5..
>> Nizovi su jedna indeksirane, što vijci puno ljudi
gore ako su od više tipični programski jezici,
kao što su C, gdje je većina stvari su nula-indeksiraju.
Opet, ovo je mjesto gdje nasljeđe R-a kao jezik za slično ne
profesionalni programeri dolazi u.
Ako ste sociolog ili ekonomist ili nešto
a vi pokušavate koristiti R osnovi kao dodatak
na svoj važniji stručni rad,
ti si idući u nađi jedna indeksiranje malo prirodnije.
Budući da počnete brojati na 1 u svakodnevnom životu, a ne 0.
>> Za-petlje, to je sličan foreach izgraditi u PHP,
koji ćete doći do saznajte in-- uskoro.
Što je za vrijednosti u vektoru i onda možete učiniti stvari s vrijednošću.
PUBLIKA: To je iskrsnulo u predavanju.
CONNOR HARRIS: Oh, to je doći do predavanje, izvrsno.
PUBLIKA: Zadatak je da trebalo ukazati s desna na lijevo?
CONNOR HARRIS: Od desna na lijevo, da.
Možete misliti o njemu kao vrijednost na pravo gurnuo u varijablu
na lijevo.
PUBLIKA: U redu.
>> CONNOR HARRIS: I na kraju Funkcija sintaksa je malo čudno.
Imate Naziv Funkcija foo, dodijeljen ovoj funkciji ključne riječi, nakon čega slijedi
svih argumenata, a zatim i Tijelo funkcije nakon toga.
Opet te stvari mogu čini malo čudno.
Oni će postati druga priroda poslije Ako se radi s jezikom za malo.
Dakle vektora, način ste izgraditi vektor
je upišete C, što je ključna riječ, a zatim svi brojevi koje želite ili žice
ili što god.
Argumenti također biti vektori.
No, što je rezultiralo niz dobiva spljošteno.
Dakle, ne možete imati polja gdje je to neki elementi su pojedinačni brojevi
a neki elementi su sami polja.
>> Dakle, ako pokušate izgraditi Niz bili prvi element 4
a drugi element je niz 3,5 ćete
samo dobiti tri niz elemenata, 4,3,5.
Oni ne mogu biti mješovitog tipa.
Ako pokušate čitati ili pisati izvan granica vektora
ćete dobiti tu vrijednost pod nazivom NA koja se zalaže za nestalom vrijednosti.
I to je namijenjen kao statističari, koji
rade s nepotpunim skupova podataka.
>> Ako se prijavite funkciju koja je trebala uzeti samo jedan broj na niz
onda ono što ćete dobiti jest, Funkcija će kartu preko polja.
Dakle, ako je vaša funkcija recimo traje broj i vraća ga četvornih.
Možete podnijeti zahtjev da se na niz 2,3,5 Ono što ćete dobiti je niz 4,9,25.
>> A to je vrlo korisno jer to vam znači
ne moraju pisati za petlje za radi vrlo jednostavne stvari kao što je nanošenje
funkcija za sve članove skupa podataka.
Koji ako radite s velikim setovi podataka, što morate učiniti mnogo.
Binarni funkcije Primijenjena ulazak upisom.
Ja ću doći u to.
Možete im pristupiti sa polja ili vektori s uglatim zagradama.
Dakle, naziv vektor četvornih zagrade 1 će vam dati prvi element.
Ime Vector četvornih zagrade 2 će vam dati drugi element.
>> Možete proći na vektor indeksa i vi ćete
vratiti se u osnovi pod faktor.
Dakle, što možete učiniti vektor naziv zagrade C, 2,4 a vi ćete izaći vektor koji sadrži
drugog i četvrtog elementi polja.
A ako želiš samo Kratki sažetak statistika
vektora kao interkvartilni raspon, medijan, maksimalno, bez obzira,
možete samo upisati sažetak Naziv vektor i dobiti to van.
To zapravo i nije korisno u programiranje, ali ako igrate
oko skupova podataka, to je zgodan.
>> Matrices-- osnovi viših dimenzionalnih polja.
Oni su ovu posebnu zapis sintaksu.
Matrica s nizom koje dobiva ispunjen in-- Žao nam je, matrice s podacima,
Broj redaka, broj stupaca.
Kad imate neke podatke, što ispunjava Niz osnovi ide od vrha do dna
prvi.
Zatim lijeva na desno.
Dakle, kao što je to.
I R je izgrađen u matrix multipliciranju,
spektra rastvara, dijagonalizacija, puno stvari.
Ako želite veći dimenzionalni polja, tako da 3, 4, 5,
ili što god dimenzije možete to učiniti.
Sintaksa je niz prigušeno jednak c, onda popis dimenzija.
Dakle, ako želite 4 dimenzionalni niz dimenzija 4, 7, 8, 9, polje,
Dim jednak c (4,7,8,9).
>> Možete pristupiti pojedinačne vrijednosti sa zagradama Prvi zapis zarez drugi ulaz.
Možete dobiti cijeli kriške redaka ili stupaca.
S ovim nepotpunim sintaksa je Samo red broj zarez ili zarez stupac
broj.
Dakle, popisi su vrsta povezanih polja.
Oni imaju svoje sintaksu ovdje.
Opet ne grčevito kopirati sve ovo dolje.
To je samo tako da ljudi prolazi kroz slajdove kasnije
ima sve to u lijepoj referencu.
A to će postati vrlo prirodno jednom Zapravo sam prošetati kroz demo.
Tako navodi osnovi povezane polja.
Možete pristupiti vrijednosti s Naziv popisa, dolar znak, ključ.
Dakle, ako se vaš popis je nazvana foo, onda možete pristupiti tako.
Možete dobiti cijeli ključ-vrijednost par prolaskom u kvadratnom indeksa nosača.
Ako ste pročitali iz nepostojećeg Ključ, dobit ćete null.
Neće pogreške.
Stvar je, R će učiniti što je koliko s null kao što se može.
A to može značiti da, ako ste ne očekujući da se nulta iz
nekog popisa za čitanje, da ćete dobiti neki nepredvidljive pogreške Dalje
crta.
>> To mi se dogodilo mom ljetni posao, kada sam bio koristeći R
gdje sam promijenio kako neki Popis definiran na jednom mjestu
ali nije promijenio kasnije na kod koji čita vrijednosti od njega.
I tako ono što se dogodilo da sam bio čitanje null vrijednosti iz ovog popisa,
ih prolazi na funkcijama, i biti vrlo zbunjeni
kad sam dobio sve vrste slučajni beskonačnosti pomalja
u ovu funkciju.
Jer ako se primjenjuju određeni maksimalni ili minimalni funkcije na nulu,
ćete dobiti beskonačan vrijednosti van.
>> Podatkovni, oni podrazred popisa.
Svaka vrijednost je vektor od iste dužine.
I oni koriste za predstavljanje, osnovi, podataka tablice.
Tu je ovo inicijalizacije sintakse.
To će sve, opet, biti puno jasnije kada se na demo.
I lijepa stvar o Okviri podataka je da ti
mogu dati imena na sva stupcima i imena svim redovima.
I tako to čini pristupa ih malo ugodnija.
Također ovo je kako većina funkcije koje čitati podatke iz Excel tablice
ili iz tekstualnih datoteka, na primjer, će pročitati u svojim podacima.
Oni će ga staviti u neka vrsta okvira podataka.
Dakle functions-- funkcija sintaksa je malo čudno.
Opet to je naziv funkcije, dodijeliti, ovu funkciju ključnih riječi i potom
popis argumenata.
Dakle, postoje neke lijepe stvari o tome kako funkcionira raditi ovdje.
Za jednu, zapravo možete dodijeliti Zadane vrijednosti za određene argumente.
Tako da mogu reći R1 equals-- možete reći foo
je funkcija gdje su R1 jednako nešto po defaultu ako korisnik specificira
nema argumenata.
Inače, to je ono što je stavio u.
A to je vrlo zgodan jer puno naših funkcija
često imaju na desetke ili stotine argumenata.
Primjerice one za crtanje grafovi ili plotanje raspršeni zemljišta
imaju argumente koji kontroliraju sve iz naslova i os
Oznake na boju linije regresije.
I tako, ako ne želite da se ljudi naveli
svaki jedan od tih stotine argumenata
kontrolira svaki aspekt zemljište ili regresija ili što god,
to je lijepo imati ove zadane vrijednosti.
>> A onda možete zapravo napišite što ste vidjeli ovdje.
Ili naći bolji primjer.
Kad nazovete funkcije možete zapravo nazovite ih koristite nazive argumenata.
Dakle ovdje je primjer matrica konstruktora.
Potrebno je tri argumente.
Obično imate podatke, što je vektor.
Imate N red, koji je broj redova.
Imate N cols-- broj stupaca.
Stvar je ako upišete N red jednak god
i N Col jednak god kada vi zovete tu funkciju,
zapravo možete ih preokrenuti.
Dakle, možete staviti N col prvi i N red drugi i to će učiniti nikakvu razliku.
Dakle, to je lijepo malo osobina.
>> Jeste uvoz i izvoz.
To se može učiniti, u osnovi.
Tu su i sadržaji za napisati proizvoljna R protivi binarna datoteka
a zatim ih pročitati ponovno kasnije.
Koji je zgodan ako radite veliki interaktivnim sjednici R
i morate spasiti stvari vrlo brzo.
Po defaultu R ima radni imenik da se datoteka napisana u
i pročitati natrag iz.
Možete vidjeti da je s getwg, promijenite ga setdw.
Ništa posebno zanimljivo ovdje
>> Tako sada stvarni statistika stuff-- multilinear regresiju.
Tako uobičajene sintaksi je malo komplicirano.
Model je veliki objekt osnovi.
Ona dobiva dodijeljen LM, što je funkcija poziva.
Prvi element, Y tilda x1 plus god.
Moj sintaksa ovdje je malo zbunjujuće.
Ja sam jako žao, to je standardni način
to računalo znanstvene knjige to.
Ali, to je malo čudno.
>> Tako je u osnovi, to je LM zagrade, prva točka
je variable-- žao, ovisi varijabla tilda x1 x2 plus plus
Međutim, mnogi nezavisni varijable imate.
I onda to može biti ili vektori, svi iste duljine.
Ili mogu biti stupac zaglavlja u okviru podataka
da li samo navesti u Drugi okvir Podaci argument.
>> Također možete odrediti složeniji formulu
tako da ne morate linearno regres za jednu zavisnu varijablu,
ili jedan vektor u prethodno postojećih vektora.
To možete učiniti, primjerice, vektor y komponenta kvadrat plus 1
i regres da protiv prijavite neke druge vektora.
Možete ispisati sažetke Model s ovom naredbom zove
summary-- samo sažetak navodnik model.
Opet nešto drugo trebam pojasniti.
Nešto drugo što će se ispravio kad su slajdovi poći na internetu.
Ako samo želite izračunati jednostavna korelacija
možete koristiti korelacija vektor 1 vektor 2 funkcija jezgre.
Metoda je po defaultu Pearson korelacije.
To su oni standardne možete učiniti.
Tu je također i Kopljanik Kendell korelacije
koje su neke razne rang poredak korelacija.
Pa oni ne izračunali proizvod trenutke između samih vektora,
ali vektora rang narudžbi.
Ja ću objasniti kasnije.
>> PUBLIKA: Brzo pitanje
>> CONNER HARRIS: Naravno.
>> PUBLIKA: pa kad ste izračuna za jednostavne korelacije napraviti
pretpostavimo da postoji statistički Značaj na korelaciju?
CONNER HARRIS: Vi ne morate.
LM je u osnovi samo stroj.
To će se u dvije stvari i to će ispljunuti
Koeficijenti za najbolje odgovara liniji.
Također se javlja standardni pogreške na tim koeficijentima.
I to će ti reći, kao što je presresti statistički značajna
ili razlika od 0.
Je li nagib od najboljih fit linije statistički
različit od nule, i tako dalje.
Dakle, to pretpostavlja ništa, mislim je najbolji odgovor na Vaše pitanje.
U REDU.
>> Plotting-- pa glavni razlog što ste trebali koristiti R, kao multilinear regresije.
U osnovi svaki jezik ima mogućnost za to.
I iskreno R je sintaksa za regresija je malo Arcane.
Ali ucrtavanje je gdje se stvarno sja.
>> Funkcija radni stroj je zemljište i to traje dva vektora, X i Y.
A onda su elipse predstavlja vrlo Veliki broj izbornih argumenata koji
kontrolirati sve, od naslova do bojama raznih linije ili različitim mjestima,
vrsti zemljišta.
Možete imati raspršiti parcela ili linija parcele.
>> [Nečujan] 2 vektori od iste dužine.
Možete prethoditi ovaj sa priložite Okvir Podaci u svom pismu.
A to će vam samo koristiti stupac zaglavlja umjesto zasebnih vektora.
Možete dodati najbolje odgovara linije i lokalne regresijske krivulje na svoj graf.
>> Te naredbe na popisu Ovdje, ab linije i linije,
po defaultu to dobiti zapisano u pop up prozora
jer pretpostavlja da koristite li R interaktivno.
Ako niste možeš napisati dvije datoteke
u stvarno bilo kojem obliku želite.
Nažalost, imam pravopisnu pogrešku Upravo sam shvatio.
Ako želite otvoriti još jedan grafički uređaj
možete koristiti ovu funkciju pod nazivom PNG ili JPEG ili puno drugih slikovnih formata.
A možete pisati grafove na god naziv datoteke koju ste naveli.
Za poništavanje da morate use-- Nisam ovo napisati u slide--
ali postoji funkcija zove dev točka s koje traje bez argumenata.
>> Zatim tu su sadržaji za 3D iscrtavanje
a za crtanje konture Ako želite napraviti
grafovi dviju nezavisnih varijabli.
Neću ući u to upravo sada.
>> Tu su i neke objekti za animaciju
oni su obično održava od strane trećih osoba.
Učinio sam animacije s R grafova, ali nisam koristio trećih strana
knjižnice.
Pa ja stvarno ne mogu posvjedočiti kako su oni dobri.
Ono što ja preporučam ako želite napraviti animacije pomoću R
se možete napisati sve okviri za animacije
a zatim možete koristiti treća strana program--
tipični oni nazivaju FFmpeg ili ImageMagick-- bodom
sve svoje okvire u jednoj animacije.
>> Dakle, vrijeme za demo.
Dakle, ako ste koristeći bilo Unix kao sustav što je Linux BSD ali tko koristi BSD.
OS X otvoriti prozor terminala i Type R u naredbeni redak.
Ako imate R studio ili slično, koji također radi.
Za korisnike Windowsa da bi trebao biti mogućnosti pronaći R u izborniku Start.
To bi trebao biti pozvan nešto kao R x64 3 točka god.
Otvorite koje se tamo.
>> Pa me sada neka samo otvorite prozor terminala.
U redu, traži.
PUBLIKA: Command-prostor
CONNER HARRIS: Command-Space, hvala.
Ne obično koriste Macove.
Terminal, pokazuju novi prozor.
Novi prozor Postavke Osnovna R. Dakle trebali dobiti
poruku dobrodošlice, nešto poput ovoga.
>> Dakle, ja sam koristeći R interaktivno.
Također možete pisati R skripte naravno.
Uglavnom skripte trčanje na isti način kao i
ako ste bili sjedi na računalu upisivati ​​u svakom retku jedan po jedan.
Tako ćemo početi zarađivati ​​vektor.
Strelica C 1, 2.
1, 2, 4.
OK, sigurno.
Ja mogu napraviti veličinu fonta veći.
>> PUBLIKA: Command-Plus
>> CONNER HARRIS: Command-Plus.
Naredba-Plus.
U redu, kako je to?
Dobro?
U REDU.
Pa krenimo od progla popis vektor.
Da li, strelica, C 1,2,4.
Možemo vidjeti.
Ne brinite o nosača tamo.
Nosači su tako ako ispisati vrlo dugo polja, možemo gdje ste.
Jedan primjer bi bio da sam Samo želim rasponu od 2 do 200.
Ako sam tiskane vrlo dugo niz, zagrade
samo tako da mogu zadržati od kojih je indeks pjesma
smo na ako tražim kroz to vizualno.
Dakle u svakom slučaju, imamo.
>> Zato sam rekao prije da nizovi interakciju jako lijepo s, na primjer,
unarnu operacija kao što je ovaj.
Dakle, što mislite ću dobiti ako upišete plus 1?
Da.
Dobro, sad ću napraviti ovo razlikuje niz.
Recimo B C 20,40, 80.
Pa što ti misliš ova naredba će učiniti?
Dodaj elemente.
I tako u osnovi to je ono što čini.
Dakle, to je prilično zgodan.
Tako sam o tome kako sam to učiniti. c je, recimo, 6 puta 1 do 10.
Dakle, ono što želim vidjeti sadržane, što mislite?
Tako svi višekratnici od šest.
Sad, što vi mislite će se dogoditi ako ja to učiniti?
Učinit ću to malo jasnije, C, C.
Pa što se događa, zar ne mislim, ako sam to učiniti?
plus c.
[NEČUJAN]
>> PUBLIKA: Ili pogreška ili samo dodaje prva tri elementa.
>> CONNER HARRIS: Ne baš.
To je ono što smo dobili.
Što se događa je kraći polje, a, dobio biciklom.
Tako smo dobili 124, 124, 124.
Da.
A u osnovi, možete pogledati ovo ponašanje prije, plus 1,
kao potklasi ove ponašanja, gdje najkraći niz je samo broj
1, što je jedan element niz.
Upravo sam se govoreći vektor sve vrijeme umjesto polja,
jer to je ono što je r Dokumentacija obično radi.
To je ukorijenjen c navika.
>> U redu, pa sada imamo tu lepezu.
Dakle, imamo niz, c.
Možemo dobiti sažetak statistike o c, c. sažetak
I to je lijepo.
Dakle, sada ćemo napraviti neke matrice stvari.
Recimo m je matrica.
Učinimo ga tri do tri jedan.
Dakle nrows jednako 3, a ncols jednak 3.
A za podatke ćemo do-- pa što Što misliš da će ovo učiniti?
>> Točno, to je sljedeći.
To je nrow i ncolumn.
Dakle, ono što sam učinio je da sam proglasio tri tri matrice
a ja sam prošao u devet elemenata niza u.
Dakle logaritma sve Elementi jedan do devet.
I sve te vrijednosti popuniti up array-- žao?
PUBLIKA: To su bazične 10 dnevnici?
CONNER HARRIS: Ne, zapisnik je prirodni logaritmi, tako da baza e.
Da, ako ste htjeli baze 10 zapisnik, mislim da bih
prijaviti god, podijeljena log 10.
I tako podacima [nečujan] samo ispunjava polje, tako da od vrha do dna,
zatim s lijeva na desno.
A ako ste htjeli napraviti neki drugi niz, recimo n matrica.
Idemo napraviti, ne znam, 2 do 13.
Ili ću napraviti nešto zanimljivije.
Učinit ću 2 do 4.
nrow jednaka, recimo, 3.
Ncol jednak 4.
n.
Dakle, imamo ovo.
>> I sada, ako želimo umnožiti njih, ćemo učiniti n posto puta posto,
zato što je to n.
I imamo matrice proizvoda.
Do su način, jeste li vidjeli kako kad sam proglasio n je 2 do 4
Vektor dobio biciklom do Ispuni sve od n?
Ako ste htjeli uzeti svojstvena vrijednost razgradnje,
to je nešto što možete učiniti vrlo jednostavno.
Mi možemo učiniti svojstvenih n.
I tako je to naš prvi susresti s popisa.
>> Dakle svojstveni nje je popis s dvije tipke.
Vrijednosti, što je ovaj niz ovdje.
A vektori, koji je to niz ovdje.
Dakle, ako ste htjeli izvaditi, recimo, ovaj treći stupac
iz matrice svojstvenih vektora, jer su vektori su stupac vektori.
Dakle, što možemo učiniti VEC svojstvenih nje znak za dolar vektori, zarez 3, od [nečujan].
VEC.
Je li to, kao što ste mogli očekivati.
>> Onda kažu n puta posto puta VEC.
Tako je rezultat ovdje sigurno izgleda kao ako mi je uzeo treću svojstvene vrijednosti ovdje,
koji odgovara treći svojstveni vektor.
To samo množe sve što je u ovo svojstveni vektor, komponenta-mudar,
po svojstvenoj vrijednosti.
I to je ono što smo očekivali, jer to je ono što su karakteristične vrijednosti.
Je li netko ovdje nije uzeti linearnu algebru?
Nekoliko ljudi, u redu.
Samo uključite mozak off za malo.
I doista, ako uzmemo svojstvenih n znak za dolar vrijednosti 3 puta VEC,
i dobiti istu stvar.
To je različit format kao zaredom vektor umjesto stupcu vektora,
ali velika stvar.
I tako oni su u osnovi lijepo stvari koje možemo učiniti s matricama,
pokazali liste.
Trebam pokazati lijepo stvari o funkcijama kao dobro.
>> Tako ćemo say-- [nečujan] funkcija, nazovimo
to FUNC protiv funkciji n n squared-- Zapravo, to nije stvarno najbolji.
a, b, b kvadratna plus.
Dakle, jedna stvar o funkcije, opet, oni
ne treba eksplicitne povratak izjave.
Tako možete just-- posljednja izjava ocjenjuju
će izjavu vratio, ili vrijednost vratio.
Dakle, u ovom slučaju, mi samo smo vrednovanje jedna izjava, A kvadratna plus b.
To će biti zadana povratnu vrijednost.
To nikad ne boli staviti u povratak vrijednosti eksplicitno,
pogotovo ako ste se bave s funkcija vrlo komplicirane logike
teći.
Ali ih ne treba.
Tako sada možemo učiniti FUNC 5, 1, i to je u osnovi ono što biste očekivali.
Nešto drugo što možemo učiniti, mi zapravo možemo učiniti funkcionalnog b
jednak 1, jednaka 5.
Dakle, ako smo odredili ovdje koja broj, koji argument na koji argument
u funkciji, možemo okrenuti oko ove vrijednosti gdje god želimo.
>> PUBLIKA: Postoji li razlog ga napisati s b
jednako kao što je za razliku od samo pomoću brojevi i zarez?
CONNER HARRIS: Da, obično to učiniti ako imate funkcije
s puno argumenata.
To često može biti nalik zastava koju bih samo
želite koristiti u rijetkim prilikama.
I na taj način može vam only-- može se odnositi na konkretne argumente
koji želite koristiti nisu zadane vrijednosti za,
a vi ne morate napisati hrpa zastava jednako lažna poslije njih.
Ili mogu napisati ovo opet s zadana vrijednost kao b jednaka 2.
A onda sam mogla učiniti f FUNC, Učinit ću 4, 1 ovaj put.
I 17, što je 4 na kvadrat plus 1, kao što ste mogli očekivati.
>> Ali ja bih mogao samo zvati s fun 4,
a ja ću dobiti 18, jer Ja ne odredite b.
Dakle b dobiva zadanu vrijednost 2.
>> U redu, tako da sada, ako ste Sljedeći uz demo,
upišite ovaj redak na vaše naredbe brz i vidjeti što dolazi.
Zapravo, ne radi to.
Upišite ovo.
Trebali bi dobiti nešto ovako.
Dakle mtcars je izgrađen u podacima postaviti za ovu demonstraciju
svrhe koje dolazi with-- koji dolazi u po defaultu sa svojim r distribucije.
Ovo je kompilacija iz statistike 1974 pitanje magazina Motor Trend je
na nekoliko različitih modela automobila.
>> Dakle, postoji milja po galonu, cylinders-- Zaboravio sam što disp is-- konjskih snaga.
Vjerojatno.
Ako ste upravo Google MT automobila, onda jedan od prvih rezultata
će biti od Službena r dokumentacija
i to će objasniti Svi ovi podatci polja.
Dakle, težina is-- tež je težina automobila u tonama.
P sek je četvrt milje vrijeme.
Tako sada možemo učiniti neke zabavne stvari o MT automobila je polje podataka.
>> Dakle, što možemo učiniti stvari kao što su imena redom, MT automobila.
A ovo je popis svih redaka u skupa podataka koji su imena automobila.
Mi možemo učiniti colnames, MT automobile ovo.
Ako to ne učinite MT automobili, sub-numerički indeks, kao i 2.
smo dobili drugu kolonu iz to, što bi bilo cilindara.
>> PUBLIKA: Što vam je činiti?
>> CONNER HARRIS: upisali ja mt automobili, zagrade e,
koji mi je dao drugi Kolona iz MT automobila.
Ili ako želimo red, ja mogu upisati mtcars točki 2, na primjer.
Drugi okrugli 2 zarez, kao što je to.
I to ide u svoj red.
Ovo ovdje samo vam daje stupcu, a kolona je kao vektor.
Upravo sam shvatila sada zaboravio pokazati
neke cool stvari o vektorima koje možete učiniti s indeksima.
Pa neka mi to upravo sada.
Tako ćemo napraviti c gets-- stavljajući ovo pause-- 2 puta 1 do 10.
Dakle c samo će biti vektor 2 do 20.
Mogu uzeti elemente kao što je ovaj, c2.
Mogu proći u vektor ovako, C-- me pustiti
koristite drugo ime od c, kao VEC c.
Uglavnom, radim to tako da ne bi
zbunjeni između c kao vektor gradnja funkcija,
a onda c kao ime varijable.
VEC nosači c 4, 5, 7.
To će me izvući iz četvrti, peti, i sedam elementi polja.
Ja mogu učiniti VEC, staviti u negativan indeks, kao i negativnu 4.
To će me izvući ovo s Četvrti element uklonjen.
Onda ako sam htjela učiniti kriške, Ja mogu učiniti VEC 2 do 6.
2 debelog 6 je samo još jedan vektor, koji je 2, 3, 4, 5, 6.
Ispljune to.
>> Dakle u svakom slučaju, povratak na mt automobila.
Tako ćemo napraviti neke regresije.
Recimo Model gets-- neka je linearno regress-- Ne znam.
Prvo neka je ne pridaju mtcars, naravno.
Dakle, [nečujan] Model lm, neka nazadovanja milja po galonu na tilda težine.
A onda okvira podaci mtcars.
Dakle, sažetak modela.
>> U redu, tako da to izgleda malo komplicirano.
Ali zapravo, gledajući kao da smo pokušati izraziti milja po galonu
kao linearno težine, onda smo dobili ovaj redak ovdje
koji presreće na 37.28.
37.28 će biti teorijski milja po galonu automobila koji teži nuli.
A onda za svaku dodatnu tonu, što kucati oko pet milja po galonu
izvan toga.
Obje od tih koeficijenata ste možete vidjeti, standardne pogreške tamo.
I oni su vrlo statistički značajna.
>> Dakle, možemo biti vrlo sigurni da 1 e 10 na negativni 10.
Dakle 1 puta nešto za negativni 10, da ako bi težih automobil,
to će imati lošije milja po galonu.
Ili možemo testirati neki drugi model.
Kao umjesto regredira ovo na težini,
budimo regres na zapisnik težine, jer možda učinkovito težine
na kilometražu nekako nije linearna.
>> To nam je dao R kvadrat od 0.7528.
Dakle, pokušajmo to.
Ovaj put ćemo napraviti različite varijable, previše.
Model2.
Dakle sažetak, model2.
U redu, pa opet, mi dobio naše najbolje fit liniju ovdje.
A to time-- to govori, zapravo da svaki put kada
povećati težinu auto za faktor e
gubite to mnogo milja po galonu.
>> I tako ovaj put naš standardni zaostala pogrešaka it-- to ne smeta, stvarno.
Preostala standardna pogreška je zapravo samo standardna pogreška
da ste ostavili iza tebe oduzeti trend liniju.
I naš r na kvadrat ovdje je 0,81, koji je malo bolje nego što
smo imali i prije, 0,52.
>> I tako sad ćemo dodati Pojam ovom regresijom.
Tako ćemo nazadovati milja po galonu i na zapisnik utega
i, neka je učiniti, q milja, četvrt milje vrijeme.
U redu, ona mora imati the-- redu, qsec.
Qsec.
Actually-- žao, što?
Dopustite mi to nazivamo nešto drugo osim model2.
Dopustite mi da to zovu model3.
I tako sada možemo napraviti sažetak model3.
I tako opet, to je u osnovi ono što bi mogli očekivati.
Imate pozitivan presretanje.
Učinkovita povećanje Težina je negativan.
A učinkovita povećanje četvrt milje vrijeme
je pozitivan, ali ipak manje od težine.
Sada intuitivno, možete smisla ovo rekavši mislite o sportskim automobilima.
Tu je vrlo brzo ubrzanje, vrlo kratka vremena četvrt milje.
Također ćemo koristiti više plina, a više razborite automobili idu
imati sporiji ubrzanje, viši četvrt milje puta,
i koristiti manje plina ,, tako viši milja po galonu.
Veliki.
I tako sada je vrijeme da se zemljište nešto ovako.
Tako ćemo do-- tako goli kosti možemo učiniti plots--
jer sam vezan ovaj okvir podataka before-- mi samo možemo učiniti parcele, mas mpg.
Napravite ovo malo veći.
Tamo smo u osnovi imaju raspršiti zemljište, ali bodovi
su vrsta teško vidjeti na ovo.
>> Ne sjećam se napamet što je Sintaksa je za promjenu zemljište.
Dakle, mislim da će ovo biti dobro vrijeme da bi se,
tu je vrlo lijep Ugrađen pomoć značajka, pomoć citati funkcionirati ime.
Mi ćemo odgajati osnovi što god želite.
Mislim da sam zapravo ću to učiniti Vrsta jednako p za bodove parcele.
Je li to ništa promijeniti?
I ne, ne stvarno.
U redu.
>> Iz nekog razloga, kada sam to učinio na svoje računalo, a prije,
sve raspršiti točke bili su mnogo jasniji.
U svakom slučaju, su raspršeni vrsta vidljivi?
Postoji jedan tamo.
Nekoliko tu, malo tamo.
Možete ih nekako mogu vidjeti, zar ne?
Dakle, ako želimo dodati najbolji fit liniju ovoj parceli ovdje, što je malo goli
bones-- dopustite mi da ga malo ljepše.
Glavni jednak odnosu težine.
Milja po galonu.
Opet, možete vidjeti koliko je koristan proizvoljni argumenti su ovdje također
ne moraju staviti stvari u određeni nalog s tipkovnice argumentima
kada imate parcele, jer je oni uzeti puno argumenata.
>> Xlab jednaka težina, težina, tona.
U redu.
OK, da, ovaj uređaj je biti malo neugodno.
Ali možete vidjeti svojevrsni tamo gore, postoji naslov graf na strani.
Ovamo there's-- na dnu Ovdje postoje os naljepnice.
Ne sjećam se napamet ono naredbe ars--
što funkcije za povećanje veličina tih oznaka i naslova,
ali oni su tamo.
>> I tako, ako želimo dodaj najbolji fit linije,
bismo mogli učiniti nešto volimo-članovima I. ima sintaksa napisano ovdje.
Pa sjetite se samo dodati modela Bio MPG, težina, mtcars.
I tako, ako sam htjela dodati najbolje odgovara crta, što sam mogao učiniti, b linije modela.
I bum, imamo najbolje odgovara liniju.
To je vrsta teško vidjeti.
Ja sam vrlo žao o tehnološke poteškoće.
Ali to traje u osnovi Top lijeva na donjem desnom dijelu.
>> A ako skala su veći, mogli ste vidjeti
da presresti je ono što možete pronaći iz sažete statistike
ako upišete sažetak model.
U redu, pa se nadam da svatko dobiva nešto osjećaja ono
R je, ono što je dobro za.
Možete napraviti mnogo ljepše nego parcele to u svoje slobodno vrijeme, ako vam se sviđa.
>> Dakle stranog funkcije sučelja.
To je nešto što nije uobičajeno prekrivena uvodnim predavanjima
ili uvodni ništa za r.
Nije vjerojatno da ćeš ga trebati.
Međutim, otkrio sam da je korisno u moji projekti u prošlosti.
I nema dobar tutorial za to online.
Pa ja sam samo ide sve vas žuriti kroz to
a onda si slobodan napustiti.
I tako je strano Funkcija sučelje je što
možete koristiti nazvati da vidim Funkcije s R. interno,
R je izgrađen na C, R je aritmetička je samo C je 64-bitni s pomičnim zarezom aritmetika,
što je tip double [nečujan].
A možda želite učiniti ovo hrpa razloga.
Za jednu, R tumači, to je Ne sastavio dolje strojni kod.
Tako možete prepisati svoje unutarnje petlje u C, a zatim se
Prednost korištenja R. Like to je malo više zgodan nego C.
Ona ima bolje grafičkim objekti i sitnica.
I dok još uvijek u mogućnosti da biste dobili najveća brzina iz unutarnje petlje,
koji je mjesto gdje stvarno treba.
>> Naknadna uporaba postojećih C knjižnice, to je također važno.
Ako imate neke C biblioteku za slično, Ne znam, Fourier pretvara,
ili neke vrlo Archean Statistika postupak koristi
u visokoj energetskoj astrofizike ili nešto, ne znam.
Visoka energetska astrofizike nije ni misliti, mislim.
Ali možete učiniti umjesto da napisati izvorni R luku njih.
A na the-- i opet, kao i ako gledati u većini r zadane knjižnicama,
na unutarnji, a unutarnji su namjeravate koristiti strano funkciju
sučelje vrlo intenzivno.
Morat stvari kao Fourier pretvara ili računanje korelacija
Koeficijenti napisan u C, a oni će samo R omote oko njih.
Sučelje je malo teško. mislim
njegov je problem pretjerana u Puno upute ćete naći.
Ali ipak, to je malo zbunjujuće.
I nisam bio u mogućnosti naći dobar tutorial za to,
pa to je to upravo sada.
Opet, cijela ova segment je više za kasniju referencu.
Ne brinite o kopiranju sve dolje odmah.
Dakle, sljedećih uputa su za Unix-like sustavima,
Linux, BSD, OS X. Ne znam kako se to radi na Windows,
ali molim te samo ne učinite svoj Završni projekt na Windowsima.
Vi stvarno ne želite.
Unix je mnogo bolji set za povremeni programiranje.
Dakle, u osnovi stranog sučelje funkcija.
Ako želite napisati C Funkcija za korištenje s R,
mora poduzeti sve Argumenti su pokazivače.
>> Dakle, za pojedinačne vrijednosti, to znači to je ukazao na vrijednosti.
Za polja, ovo je pokazivač na prvi element koji
je ono što se imena Array zapravo znači.
Opet, to je nešto što bi trebali imati prilično totalno dolje nakon p postaviti pet.
Array imena su samo pokazivače na prvi element,
Vrsta floating-point je dvostruka.
A tvoja funkcija mora vratiti nevažeće.
Jedini način da se to može zapravo reći R što se dogodilo
je mijenjanjem memorije koja Ra je dao na njega kroz stranog funkciju
sučelje.
>> Zato sam napisao ovo primjer ovdje, ovo je
funkcija koja izračunava korištenja skalarni produkt dvaju vektora.
Potrebno je dva argumenta, vec1, vec2, koji su sami vektori,
te nje, koji je Duljina, jer opet,
R je izgrađen u [nečujan] saznati duljina vektora, ali ne C.
U C, vektori je proizvoljna razgraničena komad memorije.
Dakle, način na koji možete izračunati proizvode dot
je samo postaviti ovo parametar na nulu, a zatim ponoviti kroz
od 1 do zvijezda nje, jer n je pokazivač duljine,
samo dodati nešto ovo parametar.
I to može biti dobra praksa ako idete raditi
ovo napisati dva odvojena C funkcije.
Jedan od njih has-- Jedan od njih samo Potrebno argumente i vrste
da će obično biti u C.
>> Zato je potrebno niz Argumenti su pokazivače.
Ali jednog vrijednost argumenti poput n, samo je potrebno kao vrijednosti po primjerku,
bez putokaza.
A onda to ne [Nečujan] iz pokazivač.
A onda možete imati drugačiji, u biti,
omot funkcija koja osnovi obrađuje zahtjeve
stranog funkcije sučelje za tebe.
>> Način na koji to zvati u R je, nakon što imate svoj funkciju napisan u C,
upišete R cmd shlib, R Naredba zajednička knjižnica,
foo točka c, ili što god Vaše ime datoteke,
a OS ne shell u R terminala.
A to će stvoriti Knjižnica zove foo dot tako.
A onda možete ga učitati u naša skripta ili interaktivno
zapovjednoj din dot opterećenja.
Tada je funkcija u R zove točka c.
>> To traje argumente koji su Prvi naziv funkcije u C
koji želite nazvati.
A onda su svi parametri na tu funkciju,
oni moraju biti u ispravnom redoslijedu.
Morate koristiti ove vrste podvoñenje djeluje kao cijeli broj, kao
dvostruko, kao lik i kao logičan.
I onda kad se vraća Popis, koji je opet samo
pridružena niz od parametar imena i vrijednosti
nakon što je funkcija pokrenuti.
>> Dakle, u ovom slučaju, jer je točka prod ima Argumenti vec1, vec2 i int n, n van.
Do točke c imamo dot prod, naziv funkcije
Mi pozivamo, vec1, vec2, vrsta prisile.
Duljina oba vektora, Upravo sam izabrao vec1 samovoljno.
Bilo bi više robustan reći S cijeli min dužina vec1, duljina vec2.
Onda jednako dvostrukom nulom, jer mi ne stvarno
zanima me što ide u iz parametra jer smo
postavljanje ionako nula.
>> A onda su rezultati će biti Veliki povezani niz osnovi
vec1 je bilo, vec2 je god.
No, mi smo zainteresirani za van, tako da možemo dobiti da van.
To je opet, vrlo igračka primjer stranih funkcije sučelje.
Ali ako imate izračunati točku proizvodi od masivnih vektora u petlji,
ili ako morate učiniti nešto drugo u petlji,
a vi ne želite da se oslanjaju na R, koji ima malo pretek
ugrađene u njega, to može biti korisno.
>> Opet, to obično nije uvodni tema za R.
To nije dobro dokumentirani.
Ja sam ga samo zato uključujući Našao sam da je koristan u prošlosti.
Dakle, loše prakse.
Spomenuo sam da postoji for petlja u funkciji.
Općenito ne bi trebali, u jezik, a ne ga koristiti.
Ovisno o tome kako je R provodi iteracija interno, to može biti spor.
Oni jednostavno i izgleda ružno.
>> R ručke vektora vrlo lijepo, tako često ne morate ga koristiti.
Zatim možete obično zamijeniti vektor često
s tim funkcijama zove visoka Funkcije reda, karta, smanjiti,
Pronađite ili filtar.
Ja ću samo dati neke primjeri onoga što ti je činiti.
Karta je viša funkcija nalog zbog to traje funkciju kao argument.
Tako možete dati ga funkciju, možete mu dati niz,
i to će se primjenjivati ​​funkciju na svaki element niza
i vratiti novi niz.
Smanjiti, zapravo dajete je niz, što ga dati
funkcija koja traje dva argumenta.
Ona će se primjenjivati ​​funkciju prvo, prvi argument s nekim starter vrijednosti.
Zatim se taj rezultat u sekundi.
Zatim se taj rezultat u trećem, onda na taj rezultat u četvrtom.
A onda se vratiti kad se dobiva na kraju.
Tako na primjer, ako želite izračunati zbroj svih elemenata
u niz, nego što bi mogli nazvati smanjiti s [nečujan] smanjila dodatak
funkcija, kao što su fun a, b, b vratiti plus.
A onda početak vrijednost 0.
>> I sve to, možete ih naći opisano u R dokumentacije,
u svakom udžbeniku o funkcionalni programiranje.
Tu je i ova klasa Funkcije nazivaju prijaviti funkcije,
koji sam don't-- oni malo teško objasniti,
ali ako pogledate u [nečujan] zaradio sam naveo na početku,
on ih objašnjava prilično dobro u njegov dodatak na R programiranje.
Više o praksi, dodavanjem na vektore.
Da?
Mislim da bi trebalo ispraviti.
U toj prvoj liniji, VEC strijela, da strijela ne bi trebao biti tamo.
Možete dodijeliti vektora, opet, po zauzeti svoje dužine plus 1
i dodjeljivanje neke vrijednosti na to.
To će produljiti vektor, ili možete učiniti VEC jednak c, VEC newvalue.
Opet, ako koristite C sa jedan argument kao vektor,
dobivena hijerarhija dobiva spljošteno.
Tako da ću samo dobiti vektor koji je produžen do 1..
Nikada to učiniti.
>> Razlog zašto vas Ne bi trebalo učiniti je to.
Kada izdvojiti vektor, to daje određenu komad memorije.
Ako povećate tu veličinu vektora, mora preraspodijeliti vektor
negdje drugdje.
I tako preraspodjela je prilično skupo.
Neću ići u detalje o tome memorije razdjelnici provode
na razini operacijskog sustava, ali je potrebno puno vremena
pronaći novi komad memorije.
I također, ako ste Preraspodjela puno i puno
progresivno veće komadi, te kraj gore
s nečim što se zove memorije fragmentacija,
gdje je dostupna memorija podijeljen u mnogo malih blokova
u memoriji razdjelnici gledišta.
I to dobiva teže i teže pronaći memorije za druge stvari.
Dakle, umjesto, ako je potrebno za to, ako je morate rasti vektora s jednog kraja
na sljedeći, umjesto da dodavanjem na njega stalno, trebate unaprijed izdvojiti ga.
VEC strelica, duljina vektora jednaka 1.000, ili što god.
>> I onda ti samo mogu dodijeliti na vektor je vrijednosti jednog
vrijeme nakon što ste ga dodjeljuje jednom.
Naletio sam na to, opet, moj ljetni posao kad sam pisao NRA razlike
jednadžba Solver.
Ne simbolično numerički.
Ideja je da, kada imate jedna vrijednost za svoj rješenje,
koristite kako bi izračunali sljedeći.
Tako je moj prirodni naivna Sklonost je reći u redu,
pa ću početi s vektorom to je znatan vrijednost.
Izračunaj iz tog sljedeću vrijednost koja ide na moj rješenja vektora,
i dodati da je.
>> Napravite nešto drugo, dodati da je.
On je otišao vrlo, vrlo sporo.
I kad sam to shvatio i sam promijenio sustav
od dodavanjem ovoj vektor kao i 10.000 do 100.000 puta,
samo prije dodjele vektor i samo trčanje s tim.
Imam više od 1000 puta ubrzati.
Dakle, to je vrlo čest zamka za R programiranje.
Ako trebate izgraditi vektor komad po komad, prethodno izdvojiti ga.
>> Još jedan zajednički izlet up-- ovo je moja posljednja tobogan, ne worry-- je rukovanje pogreškama.
R, da budem iskren, ne stvarno to vrlo dobro.
Postoji mnogo Problemi koji se mogu pojaviti.
Na primjer, ako dobijete niz ili vektor iz funkcije
da su očekivali jedan vrijednost dolaze iz, ili obrnuto,
a ti prođe da se u funkciju koja što je napisao očekujući jednu vrijednost,
da može biti problem.
>> Određene funkcije povratak null kao i, recimo,
čitanja iz nepostojeći ključ u popisu.
No null nije kao C gdje ako pokušate pročitati
iz stare pokazivač, [nečujan] na null pokazivača, to samo SEG greške
a ako ste u vašem ispravljanje pogrešaka je govori točno gdje ste.
Umjesto toga, null će do-- funkcije će učiniti nepredvidljive stvari
ako su rukom null.
Kao, ako ste predali max null, to će vam dati negativnu beskonačnost.
I tako, da.
I tako se to dogodilo mi je jednom kad sam imala
promijenila hrpa polja u mom popisu strukturi
jednom bez da ih mijenja drugdje kad sam čitao od njih.
A onda sam dobio sve vrste slučajnih Rezultati INFINITY pomalja
a ja pojma odakle su došli.
I na žalost, tu je ne pravi R strogi mod
gdje možete reći ako nešto Izgleda kao da bi moglo biti pogreška,
samo tu zaustaviti, tako da mogu biti discipliniran i popraviti.
Međutim, postoji nešto zove zaustaviti ako nije.
To je ekvivalent do C je tvrditi, ako ste razgovarali o tome.
Ne mislim C tvrde je predavanje tema,
ali vaš vođa odjeljak Možda su otišli preko njega.
I prestani ako ne i zapravo preuzima bilo predikat, tako da bilo koja izjava
može biti istinita ili lažna.
A ako je lažna, ona prestaje svoj program.
To vam govori točno ono što vam se postroje bili i što nije uvjet.
>> A to je vrlo korisno, na primjer, Provjera razum, funkcija ulaza.
Dakle, ako imate funkcija i što očekujete, recimo,
ako treba mi dati datum, želim datumi biti samo vektor duljine 1
a negdje između 1 i 31.
A ako ne, ja znam nešto je pošlo krivo.
I sam se odlučio da se zaustavi tamo prije toga ima slučajnim kucati na efekte s kodom
da je teže ući u trag kroz.
Dakle, to je jedan od mogućih koristiti za zaustavljanje, ako ne.
>> U svakom slučaju, u redu.
Dakle, to je kraj.
Hvala vam toliko što ste došli.
Ja sam čin amater u ovome.
Dakle, ispričavam se ako ste dosadno ili zbunjeni ili što si.
Sretan sam da se pitanja putem e-pošte na connorharris@college.harvard.edu~~pobj.
To vrijedi i za sve gledajući ovaj žive ili kasnije.
Također, iako nisam TF, ja sam također vrlo
voljni služiti kao neslužbena savjetnik za svakoga tko je
korištenjem R u konačnom projektu.
>> Ako želite da se, onda samo razgovarati sa svojim TF
a zatim napisati mi email kako Znam što radite
i tako ja mogu postaviti sastanak puta s vama, ako želite.
Pa opet, puno ti hvala.
Nadam se da ste uživali u njoj.
>> PUBLIKA: [nečujan].
>> CONNER HARRIS: Naravno.
>> PUBLIKA: Kakav projekta bi CS student korištenje R za?
CONNER HARRIS: Dakle, ako niste učinili nešto što je čisto u data mining,
na primjer, i tu puno stvari
što mogu učiniti s tim podacima rudarstva i strojno učenje.
Možda želite koristiti za R sastavni dio nečega.
Sam odrastao, izvorno, primjer od ako pišete website
i želite pokrenuti automatizirani statistička analiza poslužitelju
Dnevnici u određeno vrijeme svaki dan, to bi moglo biti nešto što je
vrlo jednostavno za napraviti u samo kratko R skripta da možete planirati
izvoditi svake večeri, na primjer.
>> I siguran sam da, ako postoji li neki razlog da bih
Želite statistiku ili grafičkim mogućnostima i imaju tu pokrenuti automatski umjesto
vlasništvo komunicirati sa stvarima u Excel,
na primjer, da je nešto možda želite koristiti R za.
Dakle, bilo više pitanja prije nego što odem?
Ne?
Dobro, dobro, opet, hvala Puno došli.