Liste și tabele de date

Cel mai bine este să fi citit deja capitolul Vectori, indexare și atribuire înainte de a aborda acesta.

indexarea după

Acest capitol este acoperit în webin-R # 02 (elementele de bază ale limbajului R) de pe YouTube.

Liste

Prin natură, vectorii pot conține doar valori de același tip (numeric, textual sau logic). Cu toate acestea, este posibil să fie nevoie să reprezentăm obiecte mai complexe formate din elemente disparate. Aceasta este ceea ce permite .

Proprietăți și creație

O listă este creată pur și simplu cu funcția listă:

O listă este o colecție de obiecte, oricare ar fi acestea, fiecare element al unei liste poate avea propriile dimensiuni. În exemplul nostru anterior, am creat o listă l1 compusă din două elemente: un vector de numere întregi de lungime 5 și un vector text de lungime 1. Lungimea unei liste corespunde numărului de elemente pe care le conține și s 'obține cu lungimea:

La fel ca vectorii, o listă poate fi numită și numele elementelor unei liste pot fi accesate cu nume:

Ce se întâmplă acum dacă executăm următoarea comandă ?

Cât timp crezi că această listă nouă? 5 ?

Ei bine, nu ! Are lungimea 2, deoarece am creat o listă formată din două elemente care sunt ele însele liste. Acest lucru este mai ușor de citit dacă apelăm la funcția str care vă permite să vizualizați structura unui obiect.

O listă poate conține toate tipurile de obiecte, inclusiv alte liste. Pentru a combina elementele unei liste, trebuie să utilizați funcția de adăugare:

Se poate observa în treacăt că o listă poate fi numită doar parțial.

Indexare

Parantezele simple ([]) funcționează ca vectori. Puteți folosi atât „,”, cât și „.

Chiar dacă extragem un singur element, extracția obținută cu paranteze simple returnează întotdeauna o listă, aici compusă dintr-un singur element:

Să presupunem că vreau să calculez media valorilor primului articol din lista mea. Să încercăm următoarea comandă:

Primim un mesaj de eroare. Intr-adevar, R nu poate calcula o medie dintr-o listă. Ceea ce are nevoie este un vector de valori numerice. Cu alte cuvinte, ceea ce căutăm este conținutul real al primului articol din lista noastră și nu o singură listă de articole.

Aici vor intra în joc parantezele duble ([[]]). Pentru acestea din urmă, putem folosi indexarea după poziție sau indexarea după nume, dar nu indexarea după condiție. În plus, criteriul care va fi indicat trebuie să indice un singur element din lista noastră. În loc să returneze o listă cu un element, parantezele duble vor returna elementul desemnat. Rapid, un exemplu:

Acum putem calcula media noastră:

De asemenea, putem testa indexarea după nume.

Dar trebuie să recunoaștem că această scriere cu paranteze duble și ghilimele este cam grea. Din fericire, un nou jucător intră în scenă: simbolul dolarului ($). Aceasta este o prescurtare pentru paranteze duble pentru indexarea după nume și este folosită astfel:

Intrările l $ month și l [["month"]] sunt echivalente. Avertizare ! Acest lucru funcționează numai pentru indexarea după nume.

De asemenea, funcționează cu paranteze duble sau cu semnul dolar:

Tabelele de date

Există un tip de obiect pe care l-am abordat deja în capitolul Primul lucru cu date, este sau în limba engleză.

Proprietăți și creație

În R, matricile de date sunt pur și simplu liste cu câteva proprietăți specifice:

  • tabelele de date pot conține numai vectori;
  • toți vectorii dintr-un tabel de date au aceeași lungime;
  • toate elementele unui tabel de date sunt denumite și fiecare are un nume unic.

Prin urmare, un tabel de date corespunde fișierelor de date cu care suntem obișnuiți să manipulăm în alte programe statistice, cum ar fi sau Stata. Variabilele sunt organizate în coloane și observațiile pe rânduri.

Putem crea un tabel de date cu funcția data.frame:

Funcția data.frame are un mare defect: dacă nu dezactivăm șirurile Opțiunea AsFactors transformă șirurile, aici variabila sex în factori (un tip de vector pe care îl vom discuta mai detaliat într-un viitor capitol).

Deoarece o serie de date este o listă, funcția lungime va returna numărul de elemente din listă, deci, în acest caz, numărul de variabile și le numește numele:

Deoarece toate elementele unei matrice de date au aceeași lungime, acest obiect poate fi văzut ca bidimensional. Funcțiile nrow, ncol și dim dau respectiv numărul de rânduri, numărul de coloane și dimensiunile matricei noastre.