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"