Списъци и таблици с данни
Най-добре е вече да сте прочели главата Вектори, индексиране и присвояване, преди да се заемете с тази.

Тази глава е разгледана в webin-R # 02 (основите на езика R) в YouTube.
Списъци
По природа векторите могат да съдържат само стойности от един и същи тип (числови, текстови или логически). Може обаче да се наложи да представим по-сложни обекти, съставени от различни елементи. Това е, което позволява .
Свойства и създаване
Списъкът просто се създава с функцията списък:
Списъкът е колекция от обекти, каквито и да са те, всеки елемент от списък може да има свои собствени размери. В предишния ни пример създадохме списък l1, съставен от два елемента: вектор на цели числа с дължина 5 и текстов вектор с дължина 1. Дължината на списъка съответства на броя на елементите, които съдържа и s 'получава с дължината:
Подобно на векторите, списъкът може да бъде именуван и имената на елементите на списък могат да бъдат достъпни с имена:
Какво се случва сега, ако изпълним следната команда ?
Колко време мислите, че този нов списък l? 5 ?
Ами не! Той е с дължина 2, защото създадохме списък, съставен от два елемента, които сами по себе си са списъци. Това е по-четимо, ако извикаме функцията str, която позволява да се визуализира структурата на обект.
Списък може да съдържа всички видове обекти, включително други списъци. За да комбинирате елементите на списък, трябва да използвате функцията за добавяне:
Мимоходом може да се отбележи, че списъкът може да бъде само частично именуван.
Индексация
Единичните скоби ([]) работят като вектори. Можете да използвате и двете, и.
Дори ако извлечем един елемент, извличането, получено с отделните скоби, винаги връща списък, тук съставен от един елемент:
Да предположим, че искам да изчисля средната стойност на стойностите на първия елемент от моя списък. Нека опитаме следната команда:
Получаваме съобщение за грешка. Наистина, R не може да изчисли средна стойност от списък. Това, от което се нуждае, е вектор от числови стойности. С други думи, това, което търсим, е действителното съдържание на първия елемент в нашия списък, а не на един списък с елементи.
Тук ще влязат двойните скоби ([[]]). За последните можем да използваме индексиране по позиция или индексиране по име, но не индексиране по условие. Освен това критерият, който ще бъде посочен, трябва да посочва един и само един елемент от нашия списък. Вместо да връщат списък с елемент, двойните скоби ще върнат посочения елемент. Бързо, пример:
Сега можем да изчислим нашата средна стойност:
Можем да тестваме и индексиране по име.
Но трябва да признаем, че това писане с двойни скоби и кавички е малко тежко. За щастие на сцената излиза нов играч: символът за долар ($). Това е стенография за двойни скоби за индексиране по име и се използва по следния начин:
Записите l $ month и l [["month"]] са еквивалентни. Внимание ! Това работи само за индексиране по име.
Също така работи с двойни скоби или знака за долар:
Таблици с данни
Има един тип обект, който вече разгледахме в главата Първа работа с данни, или на английски.
Свойства и създаване
В R, масивите от данни са просто списъци с няколко специфични свойства:
- таблиците с данни могат да съдържат само вектори;
- всички вектори в таблица с данни имат еднаква дължина;
- всички елементи на таблица с данни са именувани и всеки има уникално име.
Следователно таблица с данни съответства на файловете с данни, които сме свикнали да обработваме в друг статистически софтуер, като например или Статистика. Променливите са организирани в колони, а наблюденията в редове.
Можем да създадем таблица с данни с функцията data.frame:
Функцията data.frame има голям недостатък: ако не деактивираме опцията stringsAsFactors, тя трансформира низовете, тук променливата на пола във фактори (вид вектор, който ще обсъдим по-подробно в следваща глава).
Тъй като масивът от данни е списък, функцията за дължина ще върне броя на елементите в списъка, така че в този случай броят на променливите и назовава имената им:
Тъй като всички елементи на масив от данни са с еднаква дължина, този обект може да се разглежда като двуизмерен. Функциите nrow, ncol и dim дават съответно броя на редовете, броя на колоните и размерите на нашия масив.