ПредишенСледващото

Когато за първи път започнах да използвам Р. имах нужда да знае отговорите на тези въпроси, които се използват за мен тези, които не са били, като например:

Звучи ли ви познато? И аз мисля така. Добре. нека да разгледаме внимателно всичко и е в ред.

На първо място, преминете към R - тази промяна във възприятието. Вижте данните - това е като наркотик пристрастяване, от която искате да се отървете от: не е нужно да ги види. И вие ги имате, не виждате ли, защото, който предлага SPSS - това е само една малка правоъгълно парче голям масив. Това малко визуален трик, който можете да реализирате в R с помощта на прости команди.

Имаме нужда от експериментален набор от данни; например, това:

Просто го копирате и да го поставите в R:

Друг начин: можете да изберете да копирате съдържанието на таблицата в клипборда, и въведете следната команда:

И в двата случая, тя трябва да се окаже, като този:

Разбира се, можем да видим (и редактирате) данните, известни за нас означава използване на командния поправката (тест) (но никога не съм направил с времето, през което е преминал на R).

Е, след това няколко команди SPSS, изпълнението на което на R могат да бъдат интересни за вас.

Искаме да сортирате данните ни във възходящ ред на променливата ONE:

Ключът към разбирането на този (звучи като въведение към R, но въз основа на най-добрите останалите ръководства "Въведение в R») се състои в това как индекси R редове и колони. Има два основни инструмента, които правят този вид:

  • за () функция. виж помощта чрез поръчка отбор ?;
  • съдържанието затворени в квадратни скоби.

Скобите съдържат информация за индексиране: индексиране преди за редовете след десетичната запетая е вписана запетаята - за колоните. Функция поставено преди запетаята показва, че искаме да направим с нашите масив от низове (и това е точно това, което искаме да направим: вид наблюдение, т.е. линия).

Ние може да искате да сортирате данните в низходящ ред:

Налице е също така () функцията за сортиране. но трябва да се разбере, че въпреки очевидната прилика на задачите (сортиране на елементите, тези функции работят по различен Да вземем например векторни знаци .:

Аха! Нашата вектор се сортира. Но каква е разликата от порядъка функция ()?

за () връща вектор индекси. Последният герой в този вектор - с "а" (пета позиция), който във вектора се върна по реда функция (). Той се намира в пета позиция (номер 5 се връща първия). И така нататък:

Сега, като разликата е ясна: сортиране () функция използва кодовете върнати по реда функция ().

Сортиране наблюдение на масива данни се отнася до индексиране; така че ние използваме за тази функция, за целта (). Изглежда някак нелогично, не използвайте нещо (), за да сортирате струни, но след като свикнете с него, смятате, че е естествено право.

Това е много проста: ние може да индексира данни масив с "[. ] ".

Точно както сортиране, ще напиша нещо преди десетичната запетая, тъй като ние се ангажираме операция на низ.

Избор на всички наблюдения, където променливата Един от тях е 1:

Избор на всички наблюдения, където променливата Един от тях е 1, а променлива две е "а":

Избор на всички наблюдения, където променливата Един от тях е 2, а променливата възраст е по-малко от 60:

Разбира се, ако ние използваме функцията за закрепване (). синтаксиса ще бъде още по-лесно:

Първото поразително разликата R е, че факторите, които не се показват като числа. Нека, например, да се променливата двама от нашите масив:

Opa! Сега, ако някой дори да мисля за това как да се извлече средната стойност на променлива:

"Аргументът не е цифров или логично." Point.

Може би си мислите, че използването на етикети вместо числа - това е глупаво (макар че и аз си помислих, както и). Защо някой би искал да направи това? Когато влезем данните, ние използваме номера вместо букви. И така, какво е уловката? Факт е, че това, което виждате на екрана - това не е това, което се съхранява в базата данни. Съхранение (ако не се лъжа) се състои от числа, R само отпечатъци върху екрана, като нивата на неизпълнение.

Нека се опитаме това:

И така мъж - е на 1 жени - 2.

Обърнете внимание на "по-малко от" знаци ( "<") между уровнями: их наличие говорит нам о том, что переменная является порядковой.

Сега нека да зададете нашите етикети променлива стойност, използващи един от следните методи:

> Нива (тест $ един) <- c("Low", "Medium", "High")

Или, ако предпочитате да се уточни изрично, че определен брой нива:

Това е още по-лесно, отколкото етикетите на стойност. Знам, че от двата начина.

Първият начин е да зададете етикет през (функцията ATTR).

Ние просто задава променлива две допълнителни атрибут име "етикет" (името не е от значение и може да бъде различна, като "varlab"). Сега нека да попита за етикет (етикет) променлива TWO:

Вторият начин е да се използва етикет функция () от Hmisc пакет.

Тази функция прави същото нещо, само че в по-интуитивен начин. Отново етикет Заявка:

Трудно е да се спори, но тази задача може да изисква от вас повече усилия, отколкото можете да си представите. Но тъй като вече сте влезе в пътя R, и с отворен код, защо не отидете в края на краищата?

Има два въпроса, на масата, на която аз трябва да ви убеди:

  • как масата трябва да изглежда така?
  • Какво е лесен начин да таблицата, можете да вмъкнете в документ?

Това може да звучи убедително, но. не е нужно една маса с форматиране в SPSS стил. Проблемът е наистина в това: SPSS маси твърде "zaformatirovany". Твърде много селекции, твърде много линии, твърде много кутии. Всичко това е толкова привлекателен, че отклонява вниманието от главната таблица - номер в него.

Позволете ми да ви задам един въпрос: колко ще бъдат посрещнати публикации с маси, форматирани в SPSS стил? Опитвам се да отгатнат и да кажа не. Професионални списания използват много проста форматиране на таблици, само на няколко реда, за да споделят важно съдържание. Тези таблици могат да бъдат създадени с помощта на специален софтуер, например LaTeX.

По-долу е с честота таблица, създадена в SPSS променлива един от нашите масив.

Същото в R:

Част от информацията, никакви линии изобщо. Имаме нужда от общ сбор или интереси? Това е проста:

маса () функция е много мощен. Обърнете внимание на това и да научат как работи. Това е наистина полезно за вас.

Има много начини, за да вмъкнете таблица в текст. Това зависи от това какъв софтуер, който използвате:

  • За LaTeX, аз отново ще използва Hmisc пакет. Тя включва специални функции за създаване на LaTeX-маса (може да се интересуват функция Sweave ())
  • За OpenOffice.org, има и друг чудесен пакет, наречен odfWeave. която изпълнява същата задача се като Sweave (). но OpenOffice на документа. Ти дори не трябва да копирате и поставите на маса или диаграма: просто напишете R код на програмата в своята книга, да се храни през R (да, R може да го направи) и на изхода ще получите нов документ ODF таблици и диаграми в тези места където пише кода.

Е, ако изведнъж искате да създадете точно копие на SPSS LaTeX маса, а след това ще се създаде матрица обект (нека го наречем един), като този:

И сега генерират LaTeX код, както следва:

Пусни кода в LaTeX и да получите таблица:

Внимателно, не е тя? Това е един и същ тип таблица, която сме свикнали да виждаме в професионални списания.

Ако имате нужда от повече аргументи, следния факт може да бъде с достатъчна сигурност за вас: в SPSS, има едно нещо, което можете да направите с маса - е да го поставите в текстов документ. Как красива картина. Във всяка таблица R може да бъде определена като отделен обект, от които да се направи допълнителна информация. Имате ли динамичен достъп до всички и на всеки номер в всеки един момент. Е?

Това е същото като да се създаде една променлива въз основа на други променливи стойности; и прекодиране на една и съща променлива, твърде проста.

Другата променлива Редактиране

Използването на индексиране Редактиране

нива на реда е взета от реда, по който ние ги посочите ( "Young" е първото ниво).

Сега ние просто използвайте силата на индексацията, предвидена в R.

Използването на разреза () функция Edit

Има няколко начина, за да постигнат същия резултат. Един от тях - е да използвате функцията за рязане (). Да кажем, че ние нямаме респондентите на възраст над 100 години.

Получената променлива е стойностите за нивото на фактор, които са разбираеми интуитивно. Ние можем да декларират стойностите на ред и ниво изрично:

Чрез използване СМЕНЯЙТЕ КОДОВЕТЕ () функция Edit

Друг начин да се направи същото е да се използва СМЕНЯЙТЕ КОДОВЕТЕ () функция на пакета от кола.

Имайте предвид, че в резултат на променливата, не е фактор (не всички символни променливи са от тип "фактор"). Можем да използваме аргумента as.factor.result СМЕНЯЙТЕ КОДОВЕТЕ (функция). но по подразбиране това ще се създаде нива, подредени по азбучен ред, ние също го ползват повече, когато нивото на "Young" ще бъде първият.

Традиционното решение - е да се декларира променлива в един подреден фактор:

В същото променлива Редактиране

Трудно е да се добави нещо ново. Точно към лявата и дясната страна на оператора за присвояване "<-" мы используем имя одной и той же переменной:

Единственият трик идва, когато индексиране. Ще покажем един пример:

В резултат на тази операция, всички стойности са превърнати в символ формат, така че всеки по-нататъшен опит за сравнение на променливата с номера от 60 до нищо олово. Решението предлагам тук е да се създаде временна обект, той се използва за индексиране на нашата променлива и след това просто да го изтриете.

Estesstvenno всички други методи и нивата и поръчване остават в сила.

Как да запазим в R формат? правило

Като имате (към днешна дата) знам, R осигурява голям брой типове обекти: скаларна, вектор, матрични рамки (dataframe), списъци, масиви, както и редица други (ако не се лъжа, дори и R околната среда може да се разглежда като обект).

Така че въпросът: как да я спаси?

Тъй като R дръжки на голям брой обекти, така че той разбира много формати за данни (включително и .sav .por файловете).

Според информацията, получена с помощта на командата? Data. Има четири поддържаните формати на данни със следните разширения:

Но този списък не е задължителен. Можете да дадете име на каквото и да било на файл с всяко разширение, тъй като е необходимо да се уточни пълното име, включително разширението при четене на файла.

Обикновено, файлове, съдържащи код R (т.е., последователност от инструкции за изпълнение), има разширение ".R".

Една важна забележка: Тъй като R могат да работят директно с различни обекти в памет в същото време (представете си две наведнъж заредени в паметта SPSS файл с данни), тя също така ви позволява да записвате nekolko обекти в един файл.

В следващите примери, ще приемем, че при четене и писане на файлове се извършва в текущата директория (за справка виж. Getwd и? Setwd).

Следващите примери са основни, има много допълнителни опции, които ви позволяват да зададете допълнителни настройки на който ще се запише вашите файлове. Не се колебайте да се свържете с помощните файлове за функциите, изброени по-долу.

зареже () и източника () Редактиране

зареже () функция пише последователност от команди (например, като се използва за създаване на тест ни масив) и вътрешната структура на масива от данни.

R код обикновено написани файлове с разширение "се R", така че ние избираме едно и също разширение:

В следващата стъпка можем да използваме команди от "test.R" файла с помощта на източника (функция):

На диск файла "test.R", написана в обикновен текстов формат, така че е напълно разбираемо. Можете да го погледнете, за да се разбере функционирането на сметището ().

спасяване () и натоварване () Редактиране

Този метод на консервиране на R е най-надеждни, и това е, което аз препоръчвам за ползване. В този случай, информацията се записва в двоичен формат и затова нечетливи човека файлове.

Голямо предимство на функцията спаси () - малки размери на файла. Те могат допълнително да бъдат компресирани (или с помощта на аргумента "сгъстяване", или последваща компресия полезност софтуерна) и R без никакви проблеми ще прочете тези файлове.

Синтаксисът на функцията е много проста:

Първо, за разлика (функцията за сметище). първият аргумент не е ограден в кавички. За да разберете защо, се консултирайте с онлайн помощта двете функции.

Четенето на данни се прави лесно:

Освен това, ако потребителят иска да запази всички обекти, които са в момента в паметта, можем да държите всичките си работно място с помощта save.image (функция)

dput () и DGET () Редактиране

dput () функция на практика прави същото като на сметището (). но с една разлика: в резултат на функцията не са инструкции Р. Резултатът съдържа само вътрешната структура на обекта.

Тук се използва разширение на името на ".Rdput" файл, (разширение може да се използва). Много полезен контрол аргумент = "всички". Това ще гарантира, че вътрешната структура на обекта е записано във файла в пълен размер (включително всички атрибути на обекта).

Чете данни от диска:

Друга разлика от командата сметище () - това е изрично създаване обект, когато предишната версия на създаването на обекта се случва чрез инструкциите се съхраняват във файла.

write.table () и read.table () Редактиране

write.table () функция създава ASCII представяне на масива от данни, име на разширението на изходния файл - ".tab", ".txt" или ".csv", в зависимост от вида на даден сепаратор (SEP аргумент).

Изходният файл ще загуби цялата вътрешна структура на обекта, т.е. чрез него ние не можем да се прецени дали дадена променлива фактор, да се поръча фактор и т.н.

За файлове, табулатори, инструкцията е както следва:

Обикновено, формат на данните SPSS не разполага с заглавната лента (като имената на променливите). В R, от своя страна, включва такива имена (още една причина да предпочитат R), така че ако искате да получите имената на променливите, определени от стойността на съответния аргумент (хедър), за да е истина.

Fukntsii read.table () е един от най-полезните, тя има много аргументи. Минимална формуляр за кандидатстване, както следва:

За файл с разделени със запетая стойности, екипът е един и същ, само аргумент Сеп се променя:

пиша () Редактиране

Тази функция се използва за бързо влизане във файла с вектор или шаблон.

В случай на вектора, ако той е герой във файл, той ще бъде запазен по подразбиране в една колона; ако броят на вектор, трябва да използвате аргумента ncolumns:

В случай на матрица, ние трябва да я транспонират преди да пишете на файла:

Изходният файл съдържа имената на редове и колони.

.saveRDS () и () .readRDS Редактиране

Този подход се препоръчва за смелите членове.

Обърнете внимание на присъствието на точките в началото на имената на функцията.

Понякога възниква ситуация, в която трябва да спаси R обекти в базата данни като MySQL. Това обикновено се дължи на факта, че много голямо количество данни.

Тази операция е проста за масиви от данни (dataframe) - те имат структура, подобна на структурата на базата данни. При по-сложни обекти, като списъци или матрици, като директни консервационни е просто невъзможно.

R може да конвертира всеки обект в двоична форма, под формата на BLOB (двоично голям обект) или ASCII представяне. Тази трансформация се нарича сериализация и дава голямо предимство, тъй като поредица обект - това е нищо повече от един прост вектор (като MySQL колона в таблицата).

За да сериализирате функция обект, използване сериализирате (). за превръщане на поредица обект към нормално състояние, използвайте unserialize ().

.saveRDS () функция ви позволява да запаметите поредица обект в текущата директория. readRDS () се чете обратно.

Това спестява сгъстен ASCII-версия на поредица обект R. Ако се интересувате от това прилича на поредица обект, следвайте тези стъпки:

За повече информация за R на руски, вижте:

Подкрепете проекта - споделете линка, благодаря!