Скачать файл с примерами, разбиравщимися на семинаре и файл данных world.txt.zip можно из из публичной папки BIVNI_R

Материалы по пакету dplyr

Шпаргалка по пакетам dplyr и tidyr может быть скачанна по ссылке http://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf

Мой текст про соединение таблиц (join) при помощи dplyr http://rpubs.com/ikochergin/71999

Установите пакет dplyr и пакеты, применяющиеся в документации к нему

install.packages(c("ggplot2","dplyr","nycflights13"))

подключите пакет

library(dplyr)
## 
## Attaching package: 'dplyr'
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Посмотреть встроенную документацию mini-howto-документы (vignettes) по пакету dplyr можно командой

browseVignettes(package="dplyr")

Данные для практикума

Таблицы, которые используются в задачах кратко описаны тут

Скачайте zip-архив с файлами данынх и разверните их в какую-нибудь папку, например world.data Это можно следать при помощи самой среды R следущими командами

# создаём новую папку с именем world.data
dir.create("world.data")
## Warning in dir.create("world.data"): 'world.data' уже существует
# устанавливаем текущей директорей (working directory) папку world.data
setwd("world.data")             
# скачиваем zip-архив с web-сайта
download.file(url="http://crow.academy.ru/~ikocherg/stud_do/2015vesna/world.txt.zip",destfile = "world.txt.zip")
# распаковываем его в текущую папку
unzip("world.txt.zip")
# загружаем из текстовых файлов 3 dataframe'а
country<-read.delim(file="country.txt",sep=";",dec=",",header=T)
city<-read.delim(file="city.txt",sep=";",dec=",",header=T)
countrylanguage<-read.delim(file="countrylanguage.txt",sep=";",dec=",",header=T)

Нам нужно устранить совпадение имён столбцов в таблицах. Чтобы не получать предупреждений, функцией factor задаем такие же числовые коды строк (levels) в столбце CountryCode таблицы city2 как в таблице country в этом же столбце

country2 <- rename(country,CountryName=Name,CountryPopulation=Population) 
city2 <- rename(city,CityName=Name,CityPopulation=Population)  %>% mutate(CountryCode=factor(CountryCode,levels=country2$CountryCode))

Задания по теме соединение таблиц

Исполользуйте таблицы с пеереименованными столбцами city2 и country2

Задание 1

Выдайте страны из региона “Baltic Coutnries” и их столицы (СityID=Capital) Выдайте такие столбцы как в результате, упорядочите результат по населению столицы в порядке убывания.

##   CountryName CityName CityPopulation CountryPopulation
## 1      Latvia     Riga         764328           2424200
## 2   Lithuania  Vilnius         577969           3698500
## 3     Estonia  Tallinn         403981           1439200

Задание 2

Измените код задания 1 так, чтобы выдавались не столицы прибалтийских государств, а их города с населением более 300 тыс. человек

##   CountryName CityName CityPopulation CountryPopulation
## 1      Latvia     Riga         764328           2424200
## 2   Lithuania  Vilnius         577969           3698500
## 3   Lithuania   Kaunas         412639           3698500
## 4     Estonia  Tallinn         403981           1439200

Задание 3

Количество городов (строк в группе) в каждом континенте. Выдать только те строки, где количетво городов больше 500

## Source: local data frame [3 x 2]
## 
##       Continent num_cities
## 1          Asia       1766
## 2        Europe        841
## 3 North America        581

Ответы вы можете посмотреть в иcходном файле http://1drv.ms/1IKmg5j