Listák és adattáblák
A legjobb, ha már elolvasta a Vektorok, az indexelés és a hozzárendelés fejezetet, mielőtt ezzel foglalkozna.

Ezt a fejezetet a webin-R # 02 (az R nyelv alapjai) a YouTube-on tárgyalja.
Listák
A vektorok természetüknél fogva csak azonos típusú (numerikus, szöveges vagy logikai) értékeket tartalmazhatnak. Előfordulhat azonban, hogy összetettebb, eltérő elemekből álló objektumokat kell ábrázolnunk. Ez megengedi .
Tulajdonságok és alkotás
A lista egyszerűen a lista funkcióval jön létre:
A lista objektumok gyűjteménye, bármi is legyen, a lista minden elemének megvannak a maga méretei. Korábbi példánkban hoztunk létre egy l1 listát, amely két elemből áll: egy 5 hosszúságú egész vektorból és egy 1 hosszúságú szövegvektorból. A lista hossza megegyezik a benne lévő elemek számával, és az s 'hosszával megkapja:
A vektorokhoz hasonlóan egy lista is megnevezhető, és a lista elemeinek nevei nevekkel érhetők el:
Mi történik most, ha a következő parancsot hajtjuk végre ?
Mit gondolsz, meddig vagyok ez az új lista? 5. ?
Hát nem ! A hossza 2, mert létrehoztunk egy listát, amely két elemből áll, amelyek maguk is listák. Ez jobban olvasható, ha meghívjuk az str függvényt, amely lehetővé teszi az objektum szerkezetének vizualizálását.
A lista minden típusú objektumot tartalmazhat, beleértve más listákat is. A lista elemeinek kombinálásához az Append függvényt kell használnia:
Ideiglenesen megjegyezhetjük, hogy egy listát csak részben lehet megnevezni.
Indexelés
Az egyes zárójelek ([]) úgy működnek, mint a vektorok. Használhatja a ’,’ és ’.
Még ha egyetlen elemet is kibontunk, az egyes zárójelekkel kapott kivonat mindig egy listát ad vissza, itt egyetlen elemből áll:
Tegyük fel, hogy a listám első elemének átlagát akarom kiszámítani. Próbálja ki a következő parancsot:
Hibaüzenetet kapunk. Valóban, R nem tudja kiszámolni az átlagot egy listából. Amire szüksége van, az egy numerikus értékek vektora. Más szavakkal, amit keresünk, az a listánk első elemének tényleges tartalma, nem pedig egyetlen elemlista.
Itt fognak megjelenni a kettős zárójelek ([[]]), ezekhez használhatjuk a pozíció szerinti indexelést vagy a név szerinti indexelést, de a feltétel szerinti indexelést nem. Ezenkívül a feltüntetendő kritériumnak fel kell tüntetnie a listánk egyetlen és egyetlen elemét. Ahelyett, hogy egy elemet tartalmazó listát adna vissza, dupla zárójelek adja vissza a kijelölt elemet. Gyors, példa:
Most kiszámíthatjuk az átlagunkat:
Név szerint is tesztelhetjük az indexelést.
De el kell ismernünk, hogy ez a kettős zárójeles és idézőjeles írás kissé nehéz. Szerencsére egy új játékos lép a színre: a dollár szimbólum ($). Ez a kettős zárójelek rövidítése a név szerinti indexeléshez, és így használják:
Az l $ month és az l [["month"]] bejegyzések egyenértékűek. Figyelem ! Ez csak név szerinti indexelésnél működik.
Dupla zárójelekkel vagy dollárjelekkel is működik:
Adattáblák
Van egy típusú objektum, amelyre már kitértünk az Első munka az adatokkal fejezetben, ez vagy angolul.
Tulajdonságok és alkotás
Ban ben R, az adattömbök egyszerűen listák, néhány speciális tulajdonsággal:
- az adattáblák csak vektorokat tartalmazhatnak;
- az adattábla összes vektora azonos hosszúságú;
- egy adattábla összes eleme meg van nevezve, és mindegyiknek egyedi neve van.
Ezért egy adattábla megfelel azoknak az adatfájloknak, amelyeket más statisztikai szoftverekben, például a vagy Stata. A változókat oszlopokba rendezik, a megfigyeléseket pedig sorokba rendezik.
Hozhatunk létre egy adattáblát a data.frame függvénnyel:
A data.frame függvénynek nagy hibája van: ha nem tiltjuk le az stringeketAsFactors opcióval, akkor a húrokat, itt a nemi változót tényezőkké alakítja (egy olyan vektortípus, amelyet egy későbbi fejezetben részletesebben tárgyalunk).
Mivel egy tömb adat egy lista, a length függvény visszaadja a listában szereplő elemek számát, tehát ebben az esetben a változók számát és megnevezi a nevüket:
Mivel egy adattömb összes eleme azonos hosszúságú, ez az objektum kétdimenziósnak tekinthető. A nrow, ncol és dim függvények megadják a sorok számát, az oszlopok számát és a tömb dimenzióit.