cbind, rbind
g <- rnorm(50)
dim(g) <- c(5, 10)
g <- as.data.frame(g)
g
## V1 V2 V3 V4 V5 V6
## 1 0.4554501 -1.71700868 0.2059986 0.4328180 0.32192527 0.27655075
## 2 0.7048373 -0.78445901 -0.3610573 -0.8113932 -0.78383894 0.67928882
## 3 1.0351035 -0.85090759 0.7581632 1.4441013 1.57572752 0.08983289
## 4 -0.6089264 -2.41420765 -0.7267048 -0.4314462 0.64289931 -2.99309008
## 5 0.5049551 0.03612261 -1.3682810 0.6556479 0.08976065 0.28488295
## V7 V8 V9 V10
## 1 -0.3672346 1.3025426 -1.04311894 0.5809965
## 2 0.1852306 0.3358481 -0.09018639 0.7681787
## 3 0.5818237 1.0385061 0.62351816 0.4637676
## 4 1.3997368 0.9207286 -0.95352336 -0.8857763
## 5 -0.7272921 0.7208782 -0.54282881 -1.0997809
f <- rnorm(30)
dim(f) <- c(3, 10)
f <- as.data.frame(f)
f
## V1 V2 V3 V4 V5 V6
## 1 1.51270701 -0.1208965 -0.2171398 0.8217731 0.6503486 -0.8607926
## 2 0.25792144 -1.1943289 -0.1827567 1.3921164 1.3911105 -1.1317387
## 3 0.08844023 0.6119969 0.9333463 -0.4761739 -1.1107889 -1.4592140
## V7 V8 V9 V10
## 1 0.07998255 1.044751 -0.6667734 -0.1223502
## 2 0.65320434 -1.003209 0.1055138 0.1881930
## 3 1.20096538 1.848482 -0.4222559 0.1191610
rbind(g, f)
## V1 V2 V3 V4 V5 V6
## 1 0.45545012 -1.71700868 0.2059986 0.4328180 0.32192527 0.27655075
## 2 0.70483734 -0.78445901 -0.3610573 -0.8113932 -0.78383894 0.67928882
## 3 1.03510352 -0.85090759 0.7581632 1.4441013 1.57572752 0.08983289
## 4 -0.60892638 -2.41420765 -0.7267048 -0.4314462 0.64289931 -2.99309008
## 5 0.50495512 0.03612261 -1.3682810 0.6556479 0.08976065 0.28488295
## 6 1.51270701 -0.12089654 -0.2171398 0.8217731 0.65034856 -0.86079259
## 7 0.25792144 -1.19432890 -0.1827567 1.3921164 1.39111046 -1.13173868
## 8 0.08844023 0.61199690 0.9333463 -0.4761739 -1.11078888 -1.45921400
## V7 V8 V9 V10
## 1 -0.36723464 1.3025426 -1.04311894 0.5809965
## 2 0.18523056 0.3358481 -0.09018639 0.7681787
## 3 0.58182373 1.0385061 0.62351816 0.4637676
## 4 1.39973683 0.9207286 -0.95352336 -0.8857763
## 5 -0.72729206 0.7208782 -0.54282881 -1.0997809
## 6 0.07998255 1.0447511 -0.66677341 -0.1223502
## 7 0.65320434 -1.0032086 0.10551381 0.1881930
## 8 1.20096538 1.8484819 -0.42225588 0.1191610
h <- rnorm(21)
dim(h) <- c(3, 7)
h <- as.data.frame(h)
h
## V1 V2 V3 V4 V5 V6
## 1 -0.02509255 -0.5042171 -0.5126503 0.1372562 0.124702386 -0.4282589
## 2 0.10807273 -1.6610991 2.7018910 -1.4936251 -0.996639135 -0.6136716
## 3 -0.48543524 -0.3823337 -1.3621162 -1.4704357 -0.001822614 -2.0246778
## V7
## 1 -1.2247480
## 2 0.1795164
## 3 0.5676206
cbind(f, h)
## V1 V2 V3 V4 V5 V6
## 1 1.51270701 -0.1208965 -0.2171398 0.8217731 0.6503486 -0.8607926
## 2 0.25792144 -1.1943289 -0.1827567 1.3921164 1.3911105 -1.1317387
## 3 0.08844023 0.6119969 0.9333463 -0.4761739 -1.1107889 -1.4592140
## V7 V8 V9 V10 V1 V2
## 1 0.07998255 1.044751 -0.6667734 -0.1223502 -0.02509255 -0.5042171
## 2 0.65320434 -1.003209 0.1055138 0.1881930 0.10807273 -1.6610991
## 3 1.20096538 1.848482 -0.4222559 0.1191610 -0.48543524 -0.3823337
## V3 V4 V5 V6 V7
## 1 -0.5126503 0.1372562 0.124702386 -0.4282589 -1.2247480
## 2 2.7018910 -1.4936251 -0.996639135 -0.6136716 0.1795164
## 3 -1.3621162 -1.4704357 -0.001822614 -2.0246778 0.5676206
# cbind.data.frame()
# rbind.data.frame()
Joins
languages <- data.frame(
languages = c("Selkup", "Itelmen", "Chukchi", "Kashubian"),
countries = c("Russia", "Russia", "Russia", "Poland"),
iso = c("sel", "itl", "ckt", "pol"))
languages
## languages countries iso
## 1 Selkup Russia sel
## 2 Itelmen Russia itl
## 3 Chukchi Russia ckt
## 4 Kashubian Poland pol
country_population <- data.frame(
countries = c("Russia", "Poland", "Finland"),
population = c(143, 38, 5))
country_population
## countries population
## 1 Russia 143
## 2 Poland 38
## 3 Finland 5
# install.packages("dplyr")
library(dplyr)
inner_join(languages, country_population)
## Joining, by = "countries"
## Warning in inner_join_impl(x, y, by$x, by$y, suffix$x, suffix$y): joining
## factors with different levels, coercing to character vector
## languages countries iso population
## 1 Selkup Russia sel 143
## 2 Itelmen Russia itl 143
## 3 Chukchi Russia ckt 143
## 4 Kashubian Poland pol 38
#semi_join(country_population, languages) -> df
str(df)
## 'data.frame': 20 obs. of 1 variable:
## $ y: num 46.2 60 63.4 32.7 74.1 ...
left_join(languages, country_population)
## Joining, by = "countries"
## Warning in left_join_impl(x, y, by$x, by$y, suffix$x, suffix$y): joining
## factors with different levels, coercing to character vector
## languages countries iso population
## 1 Selkup Russia sel 143
## 2 Itelmen Russia itl 143
## 3 Chukchi Russia ckt 143
## 4 Kashubian Poland pol 38
right_join(languages, country_population)
## Joining, by = "countries"
## Warning in right_join_impl(x, y, by$x, by$y, suffix$x, suffix$y): joining
## factors with different levels, coercing to character vector
## languages countries iso population
## 1 Selkup Russia sel 143
## 2 Itelmen Russia itl 143
## 3 Chukchi Russia ckt 143
## 4 Kashubian Poland pol 38
## 5 <NA> Finland <NA> 5
anti_join(languages, country_population)
## Joining, by = "countries"
## [1] languages countries iso
## <0 rows> (or 0-length row.names)
full_join(country_population, languages)
## Joining, by = "countries"
## Warning in full_join_impl(x, y, by$x, by$y, suffix$x, suffix$y): joining
## factors with different levels, coercing to character vector
## countries population languages iso
## 1 Russia 143 Selkup sel
## 2 Russia 143 Itelmen itl
## 3 Russia 143 Chukchi ckt
## 4 Poland 38 Kashubian pol
## 5 Finland 5 <NA> <NA>
Strings
paste("mm", "ff")
## [1] "mm ff"
paste0("mm", "ff")
## [1] "mmff"
paste(c("F", letters[1:5]))
## [1] "F" "a" "b" "c" "d" "e"
paste(c("F", letters[1:5]), collapse = "+")
## [1] "F+a+b+c+d+e"
toupper("σδασφδασφ")
## [1] "ΣΔΑΣΦΔΑΣΦ"
b <- c("the", "quick", "brown", "fox")
substring(b, 2) <- c("1", "22", "333") ; b
## [1] "t1e" "q22ck" "b333n" "f1x"
month.name[grepl("a", month.name)]
## [1] "January" "February" "March" "May"
month.name[!grepl("a", month.name)]
## [1] "April" "June" "July" "August" "September" "October"
## [7] "November" "December"
month.name[grepl("A|a", month.name)]
## [1] "January" "February" "March" "April" "May" "August"
is.element("May", month.name)
## [1] TRUE
"May" %in% month.name
## [1] TRUE
Обкачивание страниц при помощи css-селектора
# install.packages("rvest")
library(rvest)
source <- read_html("https://ling.hse.ru/news/")
# get titles by css selector
source %>%
html_nodes("a.link.link_dark2.no-visited") %>%
html_text() ->
titles; titles
## [1] "О школе"
## [2] "Сотрудники"
## [3] "Научная деятельность"
## [4] "Ресурсы"
## [5] "Препринты"
## [6] "Бакалаврская программа «Фундаментальная и компьютерная лингвистика»"
## [7] "Магистерская программа «Компьютерная лингвистика»"
## [8] "Магистерская программа «Лингвистическая теория и описание языка»"
## [9] "Магистерская программа «Русский как иностранный во взаимодействии языков и культур»"
## [10] "Аспирантская школа по филологическим наукам"
## [11] "XXIV Международная научная конференция студентов, аспирантов и молодых ученых \"Ломоносов\""
## [12] "Публикации"
## [13] "«Нет, мы не готовим переводчиков... зато лингвисты работают в Google»"
## [14] "«Неунылый» комментарий к «Холодному лету» Мандельштама"
## [15] "Жизнь минус любовь = прозябание, или обновлённый RusVectōrēs"
## [16] "«Не ожидала, что обучение русскому языку через игры может кого-то удивить»"
## [17] "«Здесь каждый камушек пропитан студенчеством»"
## [18] "Обновлённый каталог студенческих проектов магистратуры «Компьютерная лингвистика»"
## [19] "«Суть Digital Humanities — в междисциплинарном сотрудничестве»"
## [20] "«Не хотите ли подбавить рому?»: Екатерина Рахилина — о нестандартном Лермонтове"
## [21] "Открывается конкурс на замещение должностей профессорско-преподавательского состава"
## [22] "«А еще нужно не бояться»: Мария Шеянова и Фрэнсис Тайерс рассказали о Google Summer of Code"