About this R Notebook

R Notebooks are a ‘flavor’ of R markdown that combine plain text with R commands in code chunks. You can (and should!) edit them, and save it every few minutes like anything else!

Minimize the console. You won’t need it because the output will appear below each code chunk.

To view a copy of your notebook as HTML, just hit Save, then Preview.

Useful keyboard shortcuts:

  • run the current line of R: ctrl + enter
  • run everything in the current code chunk: ctrl + shift + enter
  • insert a new code chunk: ctrl + alt + i

List Files in a Directory

View the working directory:

getwd()
[1] "D:/Workshops/R-Spatial/rspatial_mod/outputs/rspatial_data"

List the files in the current working directory. Note ‘.’ is shorthand for the current working directory.

list.files(".")
 [1] "data"                             "gadm36_ZMB_2_sp.rds"              "LICENSE"                         
 [4] "nb.bak"                           "nb.css"                           "nb_geop_01.nb.html"              
 [7] "nb_geop_01.Rmd"                   "nb_geop_02.nb.html"               "nb_geop_02.Rmd"                  
[10] "nb_spatial-qry.nb.html"           "nb_spatial-qry.Rmd"               "nb01_syntax-review.nb.html"      
[13] "nb01_syntax-review.Rmd"           "nb01_syntax-review_ans.nb.html"   "nb01_syntax-review_ans.Rmd"      
[16] "nb02_files-folders.nb.html"       "nb02_files-folders.Rmd"           "nb02_files-folders_ans.nb.html"  
[19] "nb02_files-folders_ans.Rmd"       "nb03a_tables101.nb.html"          "nb03a_tables101.Rmd"             
[22] "nb03a_tables101_ans.nb.html"      "nb03a_tables101_ans.Rmd"          "nb03b_plotting101.nb.html"       
[25] "nb03b_plotting101.Rmd"            "nb04_import-gis-data.nb.html"     "nb04_import-gis-data.Rmd"        
[28] "nb04_import-gis-data_ans.nb.html" "nb04_import-gis-data_ans.Rmd"     "notebooks_2021-03-18.zip"        
[31] "README.md"                        "scripts"                          "scripts.zip"                     
[34] "test_working_dir.R"               "ZMB_msk_alt.grd"                  "ZMB_msk_alt.gri"                 
[37] "ZMB_msk_alt.vrt"                 


CHALLENGE. List all the files in your ‘Home’ directory. (Hint: the shortcut for the Home directory is ‘~’) Answer

List the Shapefiles in the ‘data’ directory.

list.files("./data", pattern = "*.shp")
[1] "sf_schools.shp"    "veg37.shp"         "veg37.shp.xml"     "yose_boundary.shp" "yose_poi.shp"     
[6] "yose_poi.shp.xml" 

Verify a File Exists

Write an expression that will check if a file named “sf_libraries.csv” exists in the data directory.

file.exists("./data/sf_libraries.csv")
[1] TRUE

Import a CSV File

Import the sf_libraries.csv file.

my_data <- read.csv("./data/sf_libraries.csv")

# View(my_data)


CHALLENGE: What type of R object does read.csv() return?

Saving R Objects to Disk

Any R object can be saved to disk in a special native R format, which you can load back into R.

Create 1000 random values using the random number function of your choice (e.g., rnorm()).

rnd_vals <- rnorm(1000) * 20


CHALLENGE: Create a histogram of the values.

Save your random numbers to your ‘Home’ directory using save():

save(rnd_vals, file="~/my_random_numbers.RData")

End

Congratulations, you have completed the Notebook!

To view your Notebook at HTML, save it (again), then click the ‘Preview’ button in the RStudio toolbar. If

LS0tDQp0aXRsZTogIkZpbGVzIGFuZCBGb2xkZXJzIg0Kb3V0cHV0OiANCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQotLS0NCg0KIyMgQWJvdXQgdGhpcyBSIE5vdGVib29rDQoNClIgTm90ZWJvb2tzIGFyZSBhICdmbGF2b3InIG9mIFIgbWFya2Rvd24gdGhhdCBjb21iaW5lIHBsYWluIHRleHQgd2l0aCBSIGNvbW1hbmRzIGluIGNvZGUgY2h1bmtzLiBZb3UgY2FuIChhbmQgc2hvdWxkISkgZWRpdCB0aGVtLCBhbmQgc2F2ZSBpdCBldmVyeSBmZXcgbWludXRlcyBsaWtlIGFueXRoaW5nIGVsc2UhDQoNCk1pbmltaXplIHRoZSBjb25zb2xlLiBZb3Ugd29uJ3QgbmVlZCBpdCBiZWNhdXNlIHRoZSBvdXRwdXQgd2lsbCBhcHBlYXIgYmVsb3cgZWFjaCBjb2RlIGNodW5rLg0KDQpUbyB2aWV3IGEgY29weSBvZiB5b3VyIG5vdGVib29rIGFzIEhUTUwsIGp1c3QgaGl0IFNhdmUsIHRoZW4gUHJldmlldy4NCg0KVXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0czoNCg0KIC0gcnVuIHRoZSBjdXJyZW50IGxpbmUgb2YgUjogKmN0cmwgKyBlbnRlcioNCiAtIHJ1biBldmVyeXRoaW5nIGluIHRoZSBjdXJyZW50IGNvZGUgY2h1bms6ICpjdHJsICsgc2hpZnQgKyBlbnRlcioNCiAtIGluc2VydCBhIG5ldyBjb2RlIGNodW5rOiAqY3RybCArIGFsdCArIGkqDQoNCiMjIExpc3QgRmlsZXMgaW4gYSBEaXJlY3RvcnkNCg0KVmlldyB0aGUgd29ya2luZyBkaXJlY3Rvcnk6DQoNCmBgYHtyIGNodW5rMDF9DQpnZXR3ZCgpDQpgYGANCkxpc3QgdGhlIGZpbGVzIGluIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBOb3RlICcuJyBpcyBzaG9ydGhhbmQgZm9yIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5Lg0KDQpgYGB7ciBjaHVuazAyfQ0KbGlzdC5maWxlcygiLiIpDQpgYGANCg0KXA0KDQoqKkNIQUxMRU5HRSoqLiBMaXN0IGFsbCB0aGUgZmlsZXMgaW4geW91ciAnSG9tZScgZGlyZWN0b3J5LiAoSGludDogdGhlIHNob3J0Y3V0IGZvciB0aGUgSG9tZSBkaXJlY3RvcnkgaXMgJ34nKSBbQW5zd2VyXShodHRwOi8vYml0Lmx5LzM4VVByYlEpDQoNCmBgYHtyIGNodW5rMDN9DQoNCmBgYA0KDQpMaXN0IHRoZSBTaGFwZWZpbGVzIGluIHRoZSAnZGF0YScgZGlyZWN0b3J5Lg0KDQpgYGB7ciBjaHVuazA0fQ0KbGlzdC5maWxlcygiLi9kYXRhIiwgcGF0dGVybiA9ICIqLnNocCIpDQpgYGANCg0KIyMgVmVyaWZ5IGEgRmlsZSBFeGlzdHMNCg0KV3JpdGUgYW4gZXhwcmVzc2lvbiB0aGF0IHdpbGwgY2hlY2sgaWYgYSBmaWxlIG5hbWVkICJzZl9saWJyYXJpZXMuY3N2IiBleGlzdHMgaW4gdGhlIGRhdGEgZGlyZWN0b3J5Lg0KDQpgYGB7ciBjaHVuazA1fQ0KZmlsZS5leGlzdHMoIi4vZGF0YS9zZl9saWJyYXJpZXMuY3N2IikNCmBgYA0KDQojIyBJbXBvcnQgYSBDU1YgRmlsZQ0KDQpJbXBvcnQgdGhlICpzZl9saWJyYXJpZXMuY3N2KiBmaWxlLiANCg0KYGBge3IgY2h1bmswNn0NCm15X2RhdGEgPC0gcmVhZC5jc3YoIi4vZGF0YS9zZl9saWJyYXJpZXMuY3N2IikNCg0KIyBWaWV3KG15X2RhdGEpDQpgYGANCg0KXA0KDQoqKkNIQUxMRU5HRSoqOiBXaGF0IHR5cGUgb2YgUiBvYmplY3QgZG9lcyBgcmVhZC5jc3YoKWAgcmV0dXJuPw0KDQpgYGB7ciBjaHVuazA3fQ0KDQpgYGANCg0KIyMgU2F2aW5nIFIgT2JqZWN0cyB0byBEaXNrDQoNCkFueSBSIG9iamVjdCBjYW4gYmUgc2F2ZWQgdG8gZGlzayBpbiBhIHNwZWNpYWwgbmF0aXZlIFIgZm9ybWF0LCB3aGljaCB5b3UgY2FuIGxvYWQgYmFjayBpbnRvIFIuIA0KDQpDcmVhdGUgMTAwMCByYW5kb20gdmFsdWVzIHVzaW5nIHRoZSByYW5kb20gbnVtYmVyIGZ1bmN0aW9uIG9mIHlvdXIgY2hvaWNlIChlLmcuLCBgcm5vcm0oKWApLg0KDQpgYGB7ciBjaHVuazA4fQ0Kcm5kX3ZhbHMgPC0gcm5vcm0oMTAwMCkgKiAyMA0KYGBgDQoNClwNCg0KKipDSEFMTEVOR0UqKjogQ3JlYXRlIGEgaGlzdG9ncmFtIG9mIHRoZSB2YWx1ZXMuDQoNCmBgYHtyIGNodW5rMDl9DQoNCmBgYA0KDQpTYXZlIHlvdXIgcmFuZG9tIG51bWJlcnMgdG8geW91ciAnSG9tZScgZGlyZWN0b3J5IHVzaW5nIGBzYXZlKClgOg0KDQpgYGB7ciBjaHVuazEwfQ0Kc2F2ZShybmRfdmFscywgZmlsZT0ifi9teV9yYW5kb21fbnVtYmVycy5SRGF0YSIpDQpgYGANCg0KIyMgRW5kDQoNCkNvbmdyYXR1bGF0aW9ucywgeW91IGhhdmUgY29tcGxldGVkIHRoZSBOb3RlYm9vayEgDQoNClRvIHZpZXcgeW91ciBOb3RlYm9vayBhdCBIVE1MLCBzYXZlIGl0IChhZ2FpbiksIHRoZW4gY2xpY2sgdGhlICdQcmV2aWV3JyBidXR0b24gaW4gdGhlIFJTdHVkaW8gdG9vbGJhci4gSWYNCg0KDQo=