Obtaining the data set

The first chunk produces for you vectors from a “real-life” data set, which normally is a data frame/tibble. The Gapminder data set, here loaded from the gapminder R library, shows life expectancy, population, and GDP per capita of many world countries since 1950, from official public sources. We pick random four countries in year 1997 for our exercises.

library(tidyverse)
library(gapminder)
set.seed(12) #this makes "random" the same every time we run this chunk
gap4_1997 <- gapminder %>% dplyr::filter(year == 1997) %>% sample_n(4)
country4 <- gap4_1997$country %>% as.character()  
lifeExp4 <- gap4_1997$lifeExp 
continent4 <- gap4_1997$continent %>% as.character()

HERE IT STARTS TO BE IMPORTANT Familiarize yourself with the data set (still a data frame):

gap4_1997

… and these are our vectors. They are completely independent of each other now, not remembering that they originate from the same spreadsheet at all!!!

country4
[1] "Nepal"       "Mali"        "Netherlands" "Kenya"      
continent4
[1] "Asia"   "Africa" "Europe" "Africa"
names(lifeExp4) <- country4
lifeExp4
      Nepal        Mali Netherlands       Kenya 
     59.426      49.903      78.030      54.407 

Subsetting with position

just one value, the one on the 1st position

lifeExp4[3]
Netherlands 
      78.03 

three values, those on the 1st, 2nd, and 3rd position

lifeExp4[1:3]
      Nepal        Mali Netherlands 
     59.426      49.903      78.030 

three values, those on the 1st, 2nd and 4th position. You have to concatenate them into a vector!!!

lifeExp4[c(1:2, 4)]
 Nepal   Mali  Kenya 
59.426 49.903 54.407 
lifeExp4[c(1:2,4,1,1,1)]
 Nepal   Mali  Kenya  Nepal  Nepal  Nepal 
59.426 49.903 54.407 59.426 59.426 59.426 

Subsetting with name

lifeExp4["Mali"]
  Mali 
49.903 
which(names(lifeExp4) == "Mali" )
[1] 2
lifeExp4[c("Mali", "Nepal")]
  Mali  Nepal 
49.903 59.426 

Subsetting with condition (comparison operators)

lifeExp4 == 59.426
      Nepal        Mali Netherlands       Kenya 
       TRUE       FALSE       FALSE       FALSE 
lifeExp4[lifeExp4 == 59.426]
 Nepal 
59.426 
lifeExp4[lifeExp4 != 59.426]
       Mali Netherlands       Kenya 
     49.903      78.030      54.407 
lifeExp4[lifeExp4 > 59.426]
Netherlands 
      78.03 
lifeExp4[lifeExp4 >= 59.426]
      Nepal Netherlands 
     59.426      78.030 

… and one more operator: %in%. “Is my value in that vector?”

continent4
[1] "Asia"   "Africa" "Europe" "Africa"
"America" %in% continent4
[1] FALSE
"Asia" %in% continent4
[1] TRUE
continent4 %in% "Asia"
[1]  TRUE FALSE FALSE FALSE
continent4 == "Asia"
[1]  TRUE FALSE FALSE FALSE
continent4
[1] "Asia"   "Africa" "Europe" "Africa"
country4
         Asia        Africa        Europe        Africa 
      "Nepal"        "Mali" "Netherlands"       "Kenya" 
country4[names(country4) %in% c("Africa", "Asia")]
   Asia  Africa  Africa 
"Nepal"  "Mali" "Kenya" 

Conditions combined with logical operators (&,|, !)

names(country4) == "Africa" | names(country4) == "Asia"
[1]  TRUE  TRUE FALSE  TRUE
country4[names(country4) == "Africa" | names(country4) == "Asia" ]
   Asia  Africa  Africa 
"Nepal"  "Mali" "Kenya" 

AND

lifeExp4[lifeExp4 > 50 & lifeExp4 < 70]
 Nepal  Kenya 
59.426 54.407 

OR

lifeExp4[lifeExp4 < 50 | lifeExp4 > 70]
       Mali Netherlands 
     49.903      78.030 

NEGATION

lifeExp4[!(lifeExp4 > 50) ]
  Mali 
49.903 
lifeExp4[lifeExp4 < 50 ]
  Mali 
49.903 

Important future reference for details

Combination of AND and OR: AND has priority. Use parentheses to override that. Mind truth conditions in negations. More details e.g. here. On DataCamp here and here.

Using subsetting to replace elements

country4a
         Asia        Africa        Europe        Africa 
      "Nepal"        "Mali" "Netherlands"       "Kenya" 
country4a
         Asia        Africa        Europe        Africa 
      "NEPAL"        "Mali" "Netherlands"       "Kenya" 
country4a
                 Asia                Africa                Europe                Africa 
              "NEPAL" "SOMEWHERE IN AFRICA"         "Netherlands" "SOMEWHERE IN AFRICA" 
LS0tCnRpdGxlOiAiVmVjdG9yIHN1YnNldHRpbmciCm91dHB1dDoKICB3b3JkX2RvY3VtZW50OiBkZWZhdWx0CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAotLS0KIyBPYnRhaW5pbmcgdGhlIGRhdGEgc2V0ClRoZSBmaXJzdCBjaHVuayBwcm9kdWNlcyBmb3IgeW91IHZlY3RvcnMgZnJvbSBhIFsicmVhbC1saWZlIiBkYXRhIHNldF0oaHR0cHM6Ly93d3cuZ2FwbWluZGVyLm9yZy9hYm91dC8pLCB3aGljaCBub3JtYWxseSBpcyBhIGRhdGEgZnJhbWUvdGliYmxlLgpUaGUgW0dhcG1pbmRlcl0oaHR0cHM6Ly93d3cuZ2FwbWluZGVyLm9yZy9kYXRhLykgZGF0YSBzZXQsIGhlcmUgbG9hZGVkIGZyb20gdGhlIFtgZ2FwbWluZGVyYCBSIGxpYnJhcnldKGh0dHBzOi8vY3Jhbi5yLXByb2plY3Qub3JnL3dlYi9wYWNrYWdlcy9nYXBtaW5kZXIvaW5kZXguaHRtbCksIHNob3dzIGxpZmUgZXhwZWN0YW5jeSwgcG9wdWxhdGlvbiwgYW5kIEdEUCBwZXIgY2FwaXRhIG9mIG1hbnkgd29ybGQgY291bnRyaWVzIHNpbmNlIDE5NTAsIGZyb20gb2ZmaWNpYWwgcHVibGljIHNvdXJjZXMuCldlIHBpY2sgcmFuZG9tIGZvdXIgY291bnRyaWVzIGluIHllYXIgMTk5NyBmb3Igb3VyIGV4ZXJjaXNlcy4gCgpgYGB7ciBtZXNzYWdlID0gRkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdhcG1pbmRlcikKc2V0LnNlZWQoMTIpICN0aGlzIG1ha2VzICJyYW5kb20iIHRoZSBzYW1lIGV2ZXJ5IHRpbWUgd2UgcnVuIHRoaXMgY2h1bmsKZ2FwNF8xOTk3IDwtIGdhcG1pbmRlciAlPiUgZHBseXI6OmZpbHRlcih5ZWFyID09IDE5OTcpICU+JSBzYW1wbGVfbig0KQpjb3VudHJ5NCA8LSBnYXA0XzE5OTckY291bnRyeSAlPiUgYXMuY2hhcmFjdGVyKCkgIApsaWZlRXhwNCA8LSBnYXA0XzE5OTckbGlmZUV4cCAKY29udGluZW50NCA8LSBnYXA0XzE5OTckY29udGluZW50ICU+JSBhcy5jaGFyYWN0ZXIoKQpgYGAKCl9fSEVSRSBJVCBTVEFSVFMgVE8gQkUgSU1QT1JUQU5UX18KRmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgZGF0YSBzZXQgKHN0aWxsIGEgZGF0YSBmcmFtZSk6CgpgYGB7cn0KZ2FwNF8xOTk3CmBgYAouLi4gYW5kIHRoZXNlIGFyZSBvdXIgdmVjdG9ycy4gVGhleSBhcmUgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiBlYWNoIG90aGVyIG5vdywgbm90IHJlbWVtYmVyaW5nIHRoYXQgdGhleSBvcmlnaW5hdGUgZnJvbSB0aGUgc2FtZSBzcHJlYWRzaGVldCBhdCBhbGwhISEKCgpgYGB7cn0KY291bnRyeTQKYGBgCgpgYGB7cn0KY29udGluZW50NApgYGAKCmBgYHtyfQpuYW1lcyhsaWZlRXhwNCkgPC0gY291bnRyeTQKYGBgCgoKYGBge3J9CmxpZmVFeHA0CmBgYAoKCiMgU3Vic2V0dGluZyB3aXRoIHBvc2l0aW9uCmp1c3Qgb25lIHZhbHVlLCB0aGUgb25lIG9uIHRoZSAxc3QgcG9zaXRpb24gCmBgYHtyfQpsaWZlRXhwNFszXQpgYGAKCnRocmVlIHZhbHVlcywgdGhvc2Ugb24gdGhlIDFzdCwgMm5kLCBhbmQgM3JkIHBvc2l0aW9uCmBgYHtyfQpsaWZlRXhwNFsxOjNdCmBgYAoKdGhyZWUgdmFsdWVzLCB0aG9zZSBvbiB0aGUgMXN0LCAybmQgYW5kIDR0aCBwb3NpdGlvbi4gX19Zb3UgaGF2ZSB0byBjb25jYXRlbmF0ZSB0aGVtIGludG8gYSB2ZWN0b3IhISFfXwpgYGB7cn0KbGlmZUV4cDRbYygxOjIsIDQpXQpgYGAKYGBge3J9CmxpZmVFeHA0W2MoMToyLDQsMSwxLDEpXQpgYGAKCgojIFN1YnNldHRpbmcgd2l0aCBuYW1lCgpgYGB7cn0KbGlmZUV4cDRbIk1hbGkiXQpgYGAKCmBgYHtyfQp3aGljaChuYW1lcyhsaWZlRXhwNCkgPT0gIk1hbGkiICkKYGBgCgoKYGBge3J9CmxpZmVFeHA0W2MoIk1hbGkiLCAiTmVwYWwiKV0KYGBgCgoKIyBTdWJzZXR0aW5nIHdpdGggY29uZGl0aW9uIChjb21wYXJpc29uIG9wZXJhdG9ycykKCmBgYHtyfQpsaWZlRXhwNCA9PSA1OS40MjYKYGBgCgpgYGB7cn0KbGlmZUV4cDRbbGlmZUV4cDQgPT0gNTkuNDI2XQpgYGAKCmBgYHtyfQpsaWZlRXhwNFtsaWZlRXhwNCAhPSA1OS40MjZdCmBgYAoKYGBge3J9CmxpZmVFeHA0W2xpZmVFeHA0ID4gNTkuNDI2XQpgYGAKCmBgYHtyfQpsaWZlRXhwNFtsaWZlRXhwNCA+PSA1OS40MjZdCmBgYAoKLi4uIGFuZCBvbmUgbW9yZSBvcGVyYXRvcjogYCVpbiVgLiAiSXMgbXkgdmFsdWUgaW4gdGhhdCB2ZWN0b3I/IgoKYGBge3J9CmNvbnRpbmVudDQKYGBgCgoKYGBge3J9CiJBbWVyaWNhIiAlaW4lIGNvbnRpbmVudDQKYGBgCgpgYGB7cn0KIkFzaWEiICVpbiUgY29udGluZW50NApgYGAKCmBgYHtyfQpjb250aW5lbnQ0ICVpbiUgIkFzaWEiCmBgYAoKYGBge3J9CmNvbnRpbmVudDQgPT0gIkFzaWEiCmBgYAoKCmBgYHtyfQpuYW1lcyhjb3VudHJ5NCkgPC0gY29udGluZW50NApjb250aW5lbnQ0CmBgYAoKYGBge3J9CmNvdW50cnk0CmBgYAoKCmBgYHtyfQpjb3VudHJ5NFtuYW1lcyhjb3VudHJ5NCkgJWluJSBjKCJBZnJpY2EiLCAiQXNpYSIpXQpgYGAKCiMgQ29uZGl0aW9ucyBjb21iaW5lZCB3aXRoIGxvZ2ljYWwgb3BlcmF0b3JzIChgJmAsYHxgLCBgIWApCgpgYGB7cn0KKG5hbWVzKGNvdW50cnk0KSA9PSAiQWZyaWNhIiB8IG5hbWVzKGNvdW50cnk0KSA9PSAiQXNpYSIpCmBgYAoKCmBgYHtyfQpjb3VudHJ5NFtuYW1lcyhjb3VudHJ5NCkgPT0gIkFmcmljYSIgfCBuYW1lcyhjb3VudHJ5NCkgPT0gIkFzaWEiIF0KYGBgCgoKQU5ECmBgYHtyfQpsaWZlRXhwNFtsaWZlRXhwNCA+IDUwICYgbGlmZUV4cDQgPCA3MF0KYGBgCgpPUgpgYGB7cn0KbGlmZUV4cDRbbGlmZUV4cDQgPCA1MCB8IGxpZmVFeHA0ID4gNzBdCmBgYAoKTkVHQVRJT04KYGBge3J9CmxpZmVFeHA0WyEobGlmZUV4cDQgPiA1MCkgXQpgYGAKCmBgYHtyfQpsaWZlRXhwNFtsaWZlRXhwNCA8IDUwIF0KYGBgCgojIyMgSW1wb3J0YW50IGZ1dHVyZSByZWZlcmVuY2UgZm9yIGRldGFpbHMKQ29tYmluYXRpb24gb2YgQU5EIGFuZCBPUjogQU5EIGhhcyBwcmlvcml0eS4gVXNlIHBhcmVudGhlc2VzIHRvIG92ZXJyaWRlIHRoYXQuCk1pbmQgdHJ1dGggY29uZGl0aW9ucyBpbiBuZWdhdGlvbnMuIE1vcmUgZGV0YWlscyBlLmcuIFtoZXJlXShodHRwczovL3d3dy50dXRvcmlhbHNwb2ludC5jb20vci9yX29wZXJhdG9ycy5odG0pLiBPbiBEYXRhQ2FtcCBbaGVyZV0oaHR0cHM6Ly9jYW1wdXMuZGF0YWNhbXAuY29tL2NvdXJzZXMvaW50ZXJtZWRpYXRlLXIvY2hhcHRlci0xLWNvbmRpdGlvbmFscy1hbmQtY29udHJvbC1mbG93P2V4PTEpIGFuZCBbaGVyZV0oaHR0cHM6Ly9jYW1wdXMuZGF0YWNhbXAuY29tL2NvdXJzZXMvaW50ZXJtZWRpYXRlLXIvY2hhcHRlci0xLWNvbmRpdGlvbmFscy1hbmQtY29udHJvbC1mbG93P2V4PTYpLiAKCgojIFVzaW5nIHN1YnNldHRpbmcgdG8gcmVwbGFjZSBlbGVtZW50cwpgYGB7cn0KY291bnRyeTRhIDwtIGNvdW50cnk0ICNuZXcgdmFyaWFibGUgYXMgb3VyIG5ldyBzYW5kYm94CmNvdW50cnk0YQpgYGAKCmBgYHtyfQpjb3VudHJ5NGFbMV0gPC0gIk5FUEFMIgpjb3VudHJ5NGEKYGBgCmBgYHtyfQpjb3VudHJ5NGFbbmFtZXMoY291bnRyeTRhKSA9PSAiQWZyaWNhIl0gPC0gIlNPTUVXSEVSRSBJTiBBRlJJQ0EiCmNvdW50cnk0YQpgYGAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo=