This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Executing each chunk by clicking the Run button within the chunk.
1+2
3*5
pi
3.5^3
sqrt(9)
height<-c(64, 67, 68, 70, 65)
weight<-c(120, 140, 165, 190, 130)
summary(height)
weight
height
dat1=cbind(weight, height)
dat1
plot(weight~height, data=dat1, pch=16)
Plotting symbols and colors
plot(1:20, 1:20, pch=1:20, col=1:6)
R has a recycling rule: “Vectors occurring in the same expression need not all be of the same length. If they are not, the value of the expression is a vector with the same length as the longest vector which occurs in the expression. Shorter vectors in the expression are recycled as often as need be (perhaps fractionally) until they match the length of the longest vector. In particular a constant is simply repeated.”
In the above example, I only specified 6 colors where there are 20 points. The six colors are simply repeated.
In R colors can be called by names as well. See here for list of colors and their names
plot(rnorm(30, 0, 1), rnorm(30, 0, 1), pch=8, cex=2, col=c("dodgerblue1", "firebrick1"))
RColorBrewer is R package that allow automatic generations of colors. It can generate colors from different palettes.
library(RColorBrewer)
col.use=brewer.pal(5, "RdYlBu")
plot(runif(50, 0, 1), runif(50, 0, 1), pch=c(8, 18), cex=2, col=col.use)
Equally spaced values
1:20 # Integers from 1 to 20.
-4:5 # Integers from -4 to 5
5:1 # Integers from 5 to 1
seq(0,1, len=20) # 20 numbers equally spaced between 0 and 1.
Repeated values
rep(c(1,2,3), each=3)
rep(c(2,4,6), 4)
Enter data using c().
R can read data from the console. This is not practical for real data sets.
x <- c(1, 23, 2, 3, 12, 18, 6, 9)
x
mean(x)
median(x)
var(x)
par(mfrow=c(1,2))
boxplot(x)
hist(x)
Indexing data
We often wish to examine part of a set of data. Suppose that our data is stored in the matrix A
A= matrix(1:16, nrow=4,ncol=4)
A
Then typing
A[2,3]
will select the element corresponding to the second row and the third column. The first number after the open-bracket symbol [ always referes to the ro, and the second number always refers to the column. We can also select multiple rows and columns at a time, by providing vectors as the indices.
A[c(1,3), c(2,4)]
A[1:3, 2:4]
A[1:2, ]
A[, 3:4]
The last two examples include either no index for the columns or no index for the rows. These indicate that R should include all columns or all rows, respectively. R treats a single row or column of a matrix as a vector.
A[1,]
The use of a negative sign - in the index tells R to keep all rows or columns except those indicated in the index.
A[-c(1,3),]
The dim() function outputs the number of rows followed by the number of columns of a given matrix.
dim(A)
Now, your challenge
- Step 1: Add a new chunk by clicking the Insert Chunk button on the toolbar.
- Step 2: Make a vector x that consists of 30 equally spaced values between -1 and 1.
- Step 3: Make a vector
y=sin(x)
- Step 4: Make a scatter plot of y and x.
- Step 5: Change the plotting character to a diamond.
- Step 6: Change the color of your dots.
- Step 7: Read
help(plot) about different types of plot specified by type =.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button to preview the HTML file).
LS0tDQp0aXRsZTogIkludHJvZHVjdGlvbiB0byBSIg0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQNCiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0DQotLS0NCg0KVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4gDQoNCkV4ZWN1dGluZyBlYWNoIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuay4gDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQoxKzINCjMqNQ0KcGkNCjMuNV4zDQpzcXJ0KDkpDQpgYGANCg0KYGBge3IsIGVjaG89VFJVRX0NCmhlaWdodDwtYyg2NCwgNjcsIDY4LCA3MCwgNjUpDQp3ZWlnaHQ8LWMoMTIwLCAxNDAsIDE2NSwgMTkwLCAxMzApDQpzdW1tYXJ5KGhlaWdodCkNCndlaWdodA0KaGVpZ2h0DQpkYXQxPWNiaW5kKHdlaWdodCwgaGVpZ2h0KQ0KZGF0MQ0KYGBgDQoNCmBgYHtyfQ0KcGxvdCh3ZWlnaHR+aGVpZ2h0LCBkYXRhPWRhdDEsIHBjaD0xNikNCmBgYA0KDQojIyMjIFBsb3R0aW5nIHN5bWJvbHMgYW5kIGNvbG9ycw0KYGBge3J9DQpwbG90KDE6MjAsIDE6MjAsIHBjaD0xOjIwLCBjb2w9MTo2KQ0KYGBgDQpgUmAgaGFzIGEgKnJlY3ljbGluZyBydWxlKjogIlZlY3RvcnMgb2NjdXJyaW5nIGluIHRoZSBzYW1lIGV4cHJlc3Npb24gbmVlZCBub3QgYWxsIGJlIG9mIHRoZSBzYW1lIGxlbmd0aC4gSWYgdGhleSBhcmUgbm90LCB0aGUgdmFsdWUgb2YgdGhlIGV4cHJlc3Npb24gaXMgYSB2ZWN0b3Igd2l0aCB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIGxvbmdlc3QgdmVjdG9yIHdoaWNoIG9jY3VycyBpbiB0aGUgZXhwcmVzc2lvbi4gU2hvcnRlciB2ZWN0b3JzIGluIHRoZSBleHByZXNzaW9uIGFyZSByZWN5Y2xlZCBhcyBvZnRlbiBhcyBuZWVkIGJlIChwZXJoYXBzIGZyYWN0aW9uYWxseSkgdW50aWwgdGhleSBtYXRjaCB0aGUgbGVuZ3RoIG9mIHRoZSBsb25nZXN0IHZlY3Rvci4gSW4gcGFydGljdWxhciBhIGNvbnN0YW50IGlzIHNpbXBseSByZXBlYXRlZC4iIA0KDQpJbiB0aGUgYWJvdmUgZXhhbXBsZSwgSSBvbmx5IHNwZWNpZmllZCA2IGNvbG9ycyB3aGVyZSB0aGVyZSBhcmUgMjAgcG9pbnRzLiBUaGUgc2l4IGNvbG9ycyBhcmUgc2ltcGx5IHJlcGVhdGVkLiANCg0KSW4gYFJgIGNvbG9ycyBjYW4gYmUgY2FsbGVkIGJ5IG5hbWVzIGFzIHdlbGwuIFNlZSBbaGVyZV0oaHR0cDovL3d3dy5zdGF0LmNvbHVtYmlhLmVkdS9+dHpoZW5nL2ZpbGVzL1Jjb2xvci5wZGYpIGZvciBsaXN0IG9mIGNvbG9ycyBhbmQgdGhlaXIgbmFtZXMNCmBgYHtyfQ0KcGxvdChybm9ybSgzMCwgMCwgMSksIHJub3JtKDMwLCAwLCAxKSwgcGNoPTgsIGNleD0yLCBjb2w9YygiZG9kZ2VyYmx1ZTEiLCAiZmlyZWJyaWNrMSIpKQ0KYGBgDQoNCmBSQ29sb3JCcmV3ZXJgIGlzIFIgcGFja2FnZSB0aGF0IGFsbG93IGF1dG9tYXRpYyBnZW5lcmF0aW9ucyBvZiBjb2xvcnMuIEl0IGNhbiBnZW5lcmF0ZSBjb2xvcnMgZnJvbSBkaWZmZXJlbnQgW3BhbGV0dGVzXShodHRwczovL2kxLndwLmNvbS9iYy5ib2phbm9yYW1hLnBsL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEzLzA0L3Jjb2xvcnNoZWV0LTEucG5nKS4gDQpgYGB7cn0NCmxpYnJhcnkoUkNvbG9yQnJld2VyKQ0KY29sLnVzZT1icmV3ZXIucGFsKDUsICJSZFlsQnUiKQ0KcGxvdChydW5pZig1MCwgMCwgMSksIHJ1bmlmKDUwLCAwLCAxKSwgcGNoPWMoOCwgMTgpLCBjZXg9MiwgY29sPWNvbC51c2UpDQoNCmBgYA0KDQoNCiMjIyMgRXF1YWxseSBzcGFjZWQgdmFsdWVzDQpgYGB7cn0NCjE6MjAgIyBJbnRlZ2VycyBmcm9tIDEgdG8gMjAuDQotNDo1ICMgSW50ZWdlcnMgZnJvbSAtNCB0byA1DQo1OjEgICMgSW50ZWdlcnMgZnJvbSA1IHRvIDENCnNlcSgwLDEsIGxlbj0yMCkgIyAyMCBudW1iZXJzIGVxdWFsbHkgc3BhY2VkIGJldHdlZW4gMCBhbmQgMS4gDQpgYGANCiMjIyMgUmVwZWF0ZWQgdmFsdWVzDQpgYGB7cn0NCnJlcChjKDEsMiwzKSwgZWFjaD0zKQ0KcmVwKGMoMiw0LDYpLCA0KQ0KYGBgDQoNCiMjIyMgRW50ZXIgZGF0YSB1c2luZyBgYygpYC4NClIgY2FuIHJlYWQgZGF0YSBmcm9tIHRoZSBjb25zb2xlLiBUaGlzIGlzIG5vdCBwcmFjdGljYWwgZm9yIHJlYWwgZGF0YSBzZXRzLg0KYGBge3J9DQp4IDwtIGMoMSwgMjMsIDIsIDMsIDEyLCAxOCwgNiwgOSkNCngNCm1lYW4oeCkNCm1lZGlhbih4KQ0KdmFyKHgpDQpwYXIobWZyb3c9YygxLDIpKQ0KYm94cGxvdCh4KQ0KaGlzdCh4KQ0KYGBgDQojIyBJbmRleGluZyBkYXRhDQoNCldlIG9mdGVuIHdpc2ggdG8gZXhhbWluZSBwYXJ0IG9mIGEgc2V0IG9mIGRhdGEuIFN1cHBvc2UgdGhhdCBvdXIgZGF0YSBpcyBzdG9yZWQgaW4gdGhlIG1hdHJpeCBBDQpgYGB7cn0NCkE9IG1hdHJpeCgxOjE2LCBucm93PTQsbmNvbD00KQ0KQQ0KYGBgDQpUaGVuIHR5cGluZw0KYGBge3J9DQpBWzIsM10NCmBgYA0Kd2lsbCBzZWxlY3QgdGhlIGVsZW1lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgc2Vjb25kIHJvdyBhbmQgdGhlIHRoaXJkIGNvbHVtbi4gVGhlIGZpcnN0IG51bWJlciBhZnRlciB0aGUgb3Blbi1icmFja2V0IHN5bWJvbCBbIGFsd2F5cyByZWZlcmVzIHRvIHRoZSBybywgYW5kIHRoZSBzZWNvbmQgbnVtYmVyIGFsd2F5cyByZWZlcnMgdG8gdGhlIGNvbHVtbi4gV2UgY2FuIGFsc28gc2VsZWN0IG11bHRpcGxlIHJvd3MgYW5kIGNvbHVtbnMgYXQgYSB0aW1lLCBieSBwcm92aWRpbmcgdmVjdG9ycyBhcyB0aGUgaW5kaWNlcy4NCmBgYHtyfQ0KQVtjKDEsMyksIGMoMiw0KV0NCkFbMTozLCAyOjRdDQpBWzE6MiwgXQ0KQVssIDM6NF0NCmBgYA0KVGhlIGxhc3QgdHdvIGV4YW1wbGVzIGluY2x1ZGUgZWl0aGVyIG5vIGluZGV4IGZvciB0aGUgY29sdW1ucyBvciBubyBpbmRleCBmb3IgdGhlIHJvd3MuIFRoZXNlIGluZGljYXRlIHRoYXQgUiBzaG91bGQgaW5jbHVkZSBhbGwgY29sdW1ucyBvciBhbGwgcm93cywgcmVzcGVjdGl2ZWx5LiBSIHRyZWF0cyBhIHNpbmdsZSByb3cgb3IgY29sdW1uIG9mIGEgbWF0cml4IGFzIGEgdmVjdG9yLg0KYGBge3J9DQpBWzEsXQ0KYGBgDQpUaGUgdXNlIG9mIGEgbmVnYXRpdmUgc2lnbiAtIGluIHRoZSBpbmRleCB0ZWxscyBSIHRvIGtlZXAgYWxsIHJvd3Mgb3IgY29sdW1ucyBleGNlcHQgdGhvc2UgaW5kaWNhdGVkIGluIHRoZSBpbmRleC4NCmBgYHtyfQ0KQVstYygxLDMpLF0NCmBgYA0KVGhlIGRpbSgpIGZ1bmN0aW9uIG91dHB1dHMgdGhlIG51bWJlciBvZiByb3dzIGZvbGxvd2VkIGJ5IHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBhIGdpdmVuIG1hdHJpeC4NCmBgYHtyfQ0KZGltKEEpDQpgYGANCiMjIE5vdywgeW91ciBjaGFsbGVuZ2UNCisgU3RlcCAxOiBBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhci4NCisgU3RlcCAyOiBNYWtlIGEgdmVjdG9yIHggdGhhdCBjb25zaXN0cyBvZiAzMCBlcXVhbGx5IHNwYWNlZCB2YWx1ZXMgYmV0d2VlbiAtMSBhbmQgMS4gDQorIFN0ZXAgMzogTWFrZSBhIHZlY3RvciBgeT1zaW4oeClgDQorIFN0ZXAgNDogTWFrZSBhIHNjYXR0ZXIgcGxvdCBvZiB5IGFuZCB4LiANCisgU3RlcCA1OiBDaGFuZ2UgdGhlIHBsb3R0aW5nIGNoYXJhY3RlciB0byBhIGRpYW1vbmQuIA0KKyBTdGVwIDY6IENoYW5nZSB0aGUgY29sb3Igb2YgeW91ciBkb3RzLiANCisgU3RlcCA3OiBSZWFkIGBoZWxwKHBsb3QpYCBhYm91dCBkaWZmZXJlbnQgdHlwZXMgb2YgcGxvdCBzcGVjaWZpZWQgYnkgYHR5cGUgPWAuDQoNCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLg0K