This refresher course is based on:
Franken, W.M. & Bouts, R.A. (2002). Wiskunde voor statistiek: Een voorbereiding. Bussum, Netherlands: Uitgeverij Coutinho
The refresher course consists of five chapters:
- Set Theory
- Mathematical Operations
- Equations
- Functions & Graphs
- Statistical Operations
This module illustrates all topics in the textbook, and how they can be implemented in R. On the fly, you will learn many of the basic functions of R.
1. Sets
1.1 Sets in Mathematics
A set is a well-defined collection of objects. Each object in a set is called an element of the set. Two sets are equal if they have exactly the same elements in them. A set that contains no elements is called a null set or an empty set. If every element in Set A is also in Set B, then Set A is a subset of Set B.
Example: if A is the set of first five charachters of the alphabet, then:
A = {a,b,c,d,e}
In R we can create this set as:
SetA <- c(“a”,“b”,“c”,“d”,“e”)
“a” %in% SetA “f” %in% SetA
Likewise, we can create a set of numbers, from 1 to 100
SetN <- c(1:100)
length(SetN) 88 %in% SetN; 105 %in%SetN
length(SetA)
1.2 Relations between sets
An empty set is a set without elements
SetEmpty <- NULL
Identical sets
SetA <- c(“1”,“3”,“4”,“6”) SetB <- c(“1”,“4”,“6”,“3”)
SetB %in% SetA SetA %in% SetB
setdiff(SetA, SetB) setequal(SetA, SetB)
SetA %in% SetB intersect(SetA, SetB)
SetA <- c(“a”,“a”,“b”,“c”,“d”) SetB <- c(“c”,“c”,“d”,“e”) union(SetA, SetB) SetA unique(SetA) SetA; SetA[!duplicated(SetA)] union(SetA, SetB) setdiff(SetA, SetB) setdiff(SetB, SetA) sort(c(setdiff(SetA, SetB), setdiff(SetB, SetA), intersect(SetB, SetA))) all(sort(c(setdiff(SetA, SetB), setdiff(SetB, SetA), intersect(SetB, SetA))) == union(SetA, SetB))
SetC <- c(“a”,“a”); SetD <- c(“a”,“b”) SetC %in% SetD all(SetC %in% SetD) SetD %in% SetC all(SetD %in% SetC)
Sets of Numbers
SetRN <- c(-Inf:+Inf)
SetN <- c(-10:+10) SetN[3] < SetN[4]
x <- 9 sqrt(x) xs <- sqrt(x)*sqrt(x); sqrt(x)^2
y <-2 sqy <- sqrt(y) x <-2 sqx <- sqrt(x) sqrt(y)sqrt(x) z <- sqysqx
Exercises
Given:
A = {2,4,6,8,10,12,14,16}
B = {1,2,3,4,5,6,7}
C = {3,6,9,12,15,18}
1. A ∩ B = (Intersection of A and B)
2. A ∩ C =
3. B ∩ C =
4. A ∩ B ∩ C =
5. A v B = (Union of A and B)
6. A v B v C =
Solution
Let’s first create the sets A, B and C
A <- seq(2, 16, 2) B <- c(1:7) C <- seq(3, 18, 3) A; B; C
1. A ∩ B = (Intersection of A and B)
(intersect(A, B)) # Putting the command between brackets, prints the result
2. A ∩ C =
(intersect(A, C))
3. B ∩ C =
(intersect(B, C))
4. A ∩ B ∩ C =
(intersect(A, B, C)) will give an error message, as intersect() works on two sets
intersect(intersect(A,B),C) # we do it in 2 steps; first, we determine the intersection of A and B; followed by the intersection of that result with C! Reduce(intersect, list(A,B,C))
5. A v B = (Union of A and B)
(AB <- sort(union(A,B)))
6. A v B v C =
(sort(union(AB,C))) # we determine the union of AB (which is the union of A and B from 5.) with C; and sort the vector
if you have to do it often, you can write a simple function u3 (which requires three vectors, in brackets)
u3 <- function(a,b,c){ d <- union(a,b) d <- sort(union(d,c)) return(d) }
i3 <- function(a,b,c){ d <- intersect(a,b) d <- sort(intersect(d,c)) return(d) }
u3(A,B,C) i3(A,B,C)
Challenge
AC <- intersect(A,C); AC setdiff(AC,B)
Which elements are in intersections of sets, but not in all sets?
setdiff(u3(intersect(A,B),intersect(A,C),intersect(B,C)),i3(A,B,C))
all(c(2,4)) %in% A
LS0tDQp0aXRsZTogIk1hdGhlbWF0aWNzIGZvciBTdGF0aXN0aWNzIC0gQSBSZWZyZXNoZXIiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIHJlZnJlc2hlciBjb3Vyc2UgaXMgYmFzZWQgb246ICANCg0KPiBGcmFua2VuLCBXLk0uICYgQm91dHMsIFIuQS4gKDIwMDIpLiAqV2lza3VuZGUgdm9vciBzdGF0aXN0aWVrOiBFZW4gdm9vcmJlcmVpZGluZyouIEJ1c3N1bSwgTmV0aGVybGFuZHM6IFVpdGdldmVyaWogQ291dGluaG8gIA0KDQpUaGUgcmVmcmVzaGVyIGNvdXJzZSBjb25zaXN0cyBvZiBmaXZlIGNoYXB0ZXJzOiAgDQoNCjEuIFNldCBUaGVvcnkgIA0KMi4gTWF0aGVtYXRpY2FsIE9wZXJhdGlvbnMgIA0KMy4gRXF1YXRpb25zICANCjQuIEZ1bmN0aW9ucyAmIEdyYXBocw0KNS4gU3RhdGlzdGljYWwgT3BlcmF0aW9ucyAgDQoNClRoaXMgbW9kdWxlIGlsbHVzdHJhdGVzIGFsbCB0b3BpY3MgaW4gdGhlIHRleHRib29rLCBhbmQgaG93IHRoZXkgY2FuIGJlIGltcGxlbWVudGVkIGluIFIuIE9uIHRoZSBmbHksIHlvdSB3aWxsIGxlYXJuIG1hbnkgb2YgdGhlIGJhc2ljIGZ1bmN0aW9ucyBvZiBSLiAgDQoNCiMgMS4gU2V0cw0KDQojIyAxLjEgU2V0cyBpbiBNYXRoZW1hdGljcw0KDQpBIHNldCBpcyBhIHdlbGwtZGVmaW5lZCBjb2xsZWN0aW9uIG9mIG9iamVjdHMuIEVhY2ggb2JqZWN0IGluIGEgc2V0IGlzIGNhbGxlZCBhbiBlbGVtZW50IG9mIHRoZSBzZXQuIFR3byBzZXRzIGFyZSBlcXVhbCBpZiB0aGV5IGhhdmUgZXhhY3RseSB0aGUgc2FtZSBlbGVtZW50cyBpbiB0aGVtLiBBIHNldCB0aGF0IGNvbnRhaW5zIG5vIGVsZW1lbnRzIGlzIGNhbGxlZCBhIG51bGwgc2V0IG9yIGFuIGVtcHR5IHNldC4gSWYgZXZlcnkgZWxlbWVudCBpbiBTZXQgQSBpcyBhbHNvIGluIFNldCBCLCB0aGVuIFNldCBBIGlzIGEgc3Vic2V0IG9mIFNldCBCLg0KDQo+IEV4YW1wbGU6IGlmIEEgaXMgdGhlIHNldCBvZiBmaXJzdCBmaXZlIGNoYXJhY2h0ZXJzIG9mIHRoZSBhbHBoYWJldCwgdGhlbjogIA0KQSA9IHthLGIsYyxkLGV9DQoNCiMgSW4gUiB3ZSBjYW4gY3JlYXRlIHRoaXMgc2V0IGFzOiANCg0KU2V0QSA8LSBjKCJhIiwiYiIsImMiLCJkIiwiZSIpDQoNCiJhIiAlaW4lIFNldEENCiJmIiAlaW4lIFNldEENCg0KIyBMaWtld2lzZSwgd2UgY2FuIGNyZWF0ZSBhIHNldCBvZiBudW1iZXJzLCBmcm9tIDEgdG8gMTAwDQoNClNldE4gPC0gYygxOjEwMCkgDQoNCmxlbmd0aChTZXROKQ0KODggJWluJSBTZXROOyAxMDUgJWluJVNldE4NCg0KbGVuZ3RoKFNldEEpDQoNCiMgMS4yIFJlbGF0aW9ucyBiZXR3ZWVuIHNldHMNCg0KIyBBbiBlbXB0eSBzZXQgaXMgYSBzZXQgd2l0aG91dCBlbGVtZW50cw0KDQpTZXRFbXB0eSA8LSBOVUxMDQoNCiMgSWRlbnRpY2FsIHNldHMNCg0KU2V0QSA8LSBjKCIxIiwiMyIsIjQiLCI2IikNClNldEIgPC0gYygiMSIsIjQiLCI2IiwiMyIpDQoNClNldEIgJWluJSBTZXRBDQpTZXRBICVpbiUgU2V0Qg0KDQpzZXRkaWZmKFNldEEsIFNldEIpDQpzZXRlcXVhbChTZXRBLCBTZXRCKQ0KDQpTZXRBICVpbiUgU2V0Qg0KaW50ZXJzZWN0KFNldEEsIFNldEIpDQoNClNldEEgPC0gYygiYSIsImEiLCJiIiwiYyIsImQiKQ0KU2V0QiA8LSBjKCJjIiwiYyIsImQiLCJlIikNCnVuaW9uKFNldEEsIFNldEIpDQpTZXRBDQp1bmlxdWUoU2V0QSkNClNldEE7IFNldEFbIWR1cGxpY2F0ZWQoU2V0QSldDQp1bmlvbihTZXRBLCBTZXRCKQ0Kc2V0ZGlmZihTZXRBLCBTZXRCKQ0Kc2V0ZGlmZihTZXRCLCBTZXRBKQ0Kc29ydChjKHNldGRpZmYoU2V0QSwgU2V0QiksIHNldGRpZmYoU2V0QiwgU2V0QSksIGludGVyc2VjdChTZXRCLCBTZXRBKSkpDQphbGwoc29ydChjKHNldGRpZmYoU2V0QSwgU2V0QiksIHNldGRpZmYoU2V0QiwgU2V0QSksIGludGVyc2VjdChTZXRCLCBTZXRBKSkpID09IHVuaW9uKFNldEEsIFNldEIpKQ0KDQpTZXRDIDwtIGMoImEiLCJhIik7IFNldEQgPC0gYygiYSIsImIiKQ0KU2V0QyAlaW4lIFNldEQNCmFsbChTZXRDICVpbiUgU2V0RCkNClNldEQgJWluJSBTZXRDDQphbGwoU2V0RCAlaW4lIFNldEMpDQoNCiMgU2V0cyBvZiBOdW1iZXJzDQoNClNldFJOIDwtIGMoLUluZjorSW5mKQ0KDQpTZXROIDwtIGMoLTEwOisxMCkNClNldE5bM10gPCBTZXROWzRdDQoNCnggPC0gOQ0Kc3FydCh4KQ0KeHMgPC0gc3FydCh4KSpzcXJ0KHgpOyBzcXJ0KHgpXjINCg0KeSA8LTINCnNxeSA8LSBzcXJ0KHkpDQp4IDwtMg0Kc3F4IDwtIHNxcnQoeCkNCnNxcnQoeSkqc3FydCh4KQ0KeiA8LSBzcXkqc3F4DQoNCiMgRXhlcmNpc2VzDQoNCiMgR2l2ZW46DQojIEEgPSB7Miw0LDYsOCwxMCwxMiwxNCwxNn0NCiMgQiA9IHsxLDIsMyw0LDUsNiw3fQ0KIyBDID0gezMsNiw5LDEyLDE1LDE4fSANCiMNCiMgMS4gQSDiiKkgQiA9IChJbnRlcnNlY3Rpb24gb2YgQSBhbmQgQikNCiMgMi4gQSDiiKkgQyA9IA0KIyAzLiBCIOKIqSBDID0gDQojIDQuIEEg4oipIEIg4oipIEMgPSANCiMgNS4gQSB2IEIgPSAoVW5pb24gb2YgQSBhbmQgQikNCiMgNi4gQSB2IEIgdiBDID0NCg0KIyBTb2x1dGlvbg0KIyBMZXQncyBmaXJzdCBjcmVhdGUgdGhlIHNldHMgQSwgQiBhbmQgQw0KDQpBIDwtIHNlcSgyLCAxNiwgMikNCkIgPC0gYygxOjcpDQpDIDwtIHNlcSgzLCAxOCwgMykNCkE7IEI7IEMNCg0KIyAxLiBBIOKIqSBCID0gKEludGVyc2VjdGlvbiBvZiBBIGFuZCBCKQ0KKGludGVyc2VjdChBLCBCKSkgIyBQdXR0aW5nIHRoZSBjb21tYW5kIGJldHdlZW4gYnJhY2tldHMsIHByaW50cyB0aGUgcmVzdWx0DQoNCiMgMi4gQSDiiKkgQyA9IA0KKGludGVyc2VjdChBLCBDKSkNCg0KIyAzLiBCIOKIqSBDID0gDQooaW50ZXJzZWN0KEIsIEMpKQ0KDQojIDQuIEEg4oipIEIg4oipIEMgPSANCiMgKGludGVyc2VjdChBLCBCLCBDKSkgd2lsbCBnaXZlIGFuIGVycm9yIG1lc3NhZ2UsIGFzIGludGVyc2VjdCgpIHdvcmtzIG9uIHR3byBzZXRzIA0KaW50ZXJzZWN0KGludGVyc2VjdChBLEIpLEMpICMgd2UgZG8gaXQgaW4gMiBzdGVwczsgZmlyc3QsIHdlIGRldGVybWluZSB0aGUgaW50ZXJzZWN0aW9uIG9mIEEgYW5kIEI7IGZvbGxvd2VkIGJ5IHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhhdCByZXN1bHQgd2l0aCBDIQ0KUmVkdWNlKGludGVyc2VjdCwgbGlzdChBLEIsQykpDQoNCiMgNS4gQSB2IEIgPSAoVW5pb24gb2YgQSBhbmQgQikNCg0KKEFCICA8LSBzb3J0KHVuaW9uKEEsQikpKQ0KDQojIDYuIEEgdiBCIHYgQyA9DQoNCihzb3J0KHVuaW9uKEFCLEMpKSkgIyB3ZSBkZXRlcm1pbmUgdGhlIHVuaW9uIG9mIEFCICh3aGljaCBpcyB0aGUgdW5pb24gb2YgQSBhbmQgQiBmcm9tIDUuKSB3aXRoIEM7IGFuZCBzb3J0IHRoZSB2ZWN0b3INCg0KIyBpZiB5b3UgaGF2ZSB0byBkbyBpdCBvZnRlbiwgeW91IGNhbiB3cml0ZSBhIHNpbXBsZSBmdW5jdGlvbiB1MyAod2hpY2ggcmVxdWlyZXMgdGhyZWUgdmVjdG9ycywgaW4gYnJhY2tldHMpDQoNCnUzIDwtIGZ1bmN0aW9uKGEsYixjKXsNCiAgZCA8LSB1bmlvbihhLGIpDQogIGQgPC0gc29ydCh1bmlvbihkLGMpKQ0KICByZXR1cm4oZCkNCn0NCg0KaTMgPC0gZnVuY3Rpb24oYSxiLGMpew0KICBkIDwtIGludGVyc2VjdChhLGIpDQogIGQgPC0gc29ydChpbnRlcnNlY3QoZCxjKSkNCiAgcmV0dXJuKGQpDQp9DQoNCnUzKEEsQixDKSANCmkzKEEsQixDKQ0KDQojIENoYWxsZW5nZQ0KDQpBQyA8LSBpbnRlcnNlY3QoQSxDKTsgQUMNCnNldGRpZmYoQUMsQikNCg0KIyBXaGljaCBlbGVtZW50cyBhcmUgaW4gaW50ZXJzZWN0aW9ucyBvZiBzZXRzLCBidXQgbm90IGluIGFsbCBzZXRzPw0KDQpzZXRkaWZmKHUzKGludGVyc2VjdChBLEIpLGludGVyc2VjdChBLEMpLGludGVyc2VjdChCLEMpKSxpMyhBLEIsQykpDQoNCmFsbChjKDIsNCkpICVpbiUgQSANCg==