Skip to content

Commit 4cbcb27

Browse files
committed
README cleanup
1 parent f0e55d0 commit 4cbcb27

1 file changed

Lines changed: 4 additions & 94 deletions

File tree

README.md

Lines changed: 4 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,15 @@
1-
### Introduction
2-
3-
This second programming assignment will require you to write an R
4-
function that is able to cache potentially time-consuming computations.
5-
For example, taking the mean of a numeric vector is typically a fast
6-
operation. However, for a very long vector, it may take too long to
7-
compute the mean, especially if it has to be computed repeatedly (e.g.
8-
in a loop). If the contents of a vector are not changing, it may make
9-
sense to cache the value of the mean so that when we need it again, it
10-
can be looked up in the cache rather than recomputed. In this
11-
Programming Assignment you will take advantage of the scoping rules of
12-
the R language and how they can be manipulated to preserve state inside
13-
of an R object.
14-
15-
### Example: Caching the Mean of a Vector
16-
17-
In this example we introduce the `<<-` operator which can be used to
18-
assign a value to an object in an environment that is different from the
19-
current environment. Below are two functions that are used to create a
20-
special object that stores a numeric vector and caches its mean.
21-
22-
The first function, `makeVector` creates a special "vector", which is
23-
really a list containing a function to
24-
25-
1. set the value of the vector
26-
2. get the value of the vector
27-
3. set the value of the mean
28-
4. get the value of the mean
29-
30-
<!-- -->
31-
32-
makeVector <- function(x = numeric()) {
33-
m <- NULL
34-
set <- function(y) {
35-
x <<- y
36-
m <<- NULL
37-
}
38-
get <- function() x
39-
setmean <- function(mean) m <<- mean
40-
getmean <- function() m
41-
list(set = set, get = get,
42-
setmean = setmean,
43-
getmean = getmean)
44-
}
45-
46-
The following function calculates the mean of the special "vector"
47-
created with the above function. However, it first checks to see if the
48-
mean has already been calculated. If so, it `get`s the mean from the
49-
cache and skips the computation. Otherwise, it calculates the mean of
50-
the data and sets the value of the mean in the cache via the `setmean`
51-
function.
52-
53-
cachemean <- function(x, ...) {
54-
m <- x$getmean()
55-
if(!is.null(m)) {
56-
message("getting cached data")
57-
return(m)
58-
}
59-
data <- x$get()
60-
m <- mean(data, ...)
61-
x$setmean(m)
62-
m
63-
}
64-
651
### Assignment: Caching the Inverse of a Matrix
662

673
Matrix inversion is usually a costly computation and there may be some
684
benefit to caching the inverse of a matrix rather than computing it
69-
repeatedly (there are also alternatives to matrix inversion that we will
70-
not discuss here). Your assignment is to write a pair of functions that
71-
cache the inverse of a matrix.
5+
repeatedly.
726

73-
Write the following functions:
7+
There are two functions:
748

759
1. `makeCacheMatrix`: This function creates a special "matrix" object
7610
that can cache its inverse.
7711
2. `cacheSolve`: This function computes the inverse of the special
7812
"matrix" returned by `makeCacheMatrix` above. If the inverse has
7913
already been calculated (and the matrix has not changed), then
80-
`cacheSolve` should retrieve the inverse from the cache.
81-
82-
Computing the inverse of a square matrix can be done with the `solve`
83-
function in R. For example, if `X` is a square invertible matrix, then
84-
`solve(X)` returns its inverse.
85-
86-
For this assignment, assume that the matrix supplied is always
87-
invertible.
88-
89-
In order to complete this assignment, you must do the following:
90-
91-
1. Fork the GitHub repository containing the stub R files at
92-
[https://github.com/rdpeng/ProgrammingAssignment2](https://github.com/rdpeng/ProgrammingAssignment2)
93-
to create a copy under your own account.
94-
2. Clone your forked GitHub repository to your computer so that you can
95-
edit the files locally on your own machine.
96-
3. Edit the R file contained in the git repository and place your
97-
solution in that file (please do not rename the file).
98-
4. Commit your completed R file into YOUR git repository and push your
99-
git branch to the GitHub repository under your account.
100-
5. Submit to Coursera the URL to your GitHub repository that contains
101-
the completed R code for the assignment.
102-
103-
### Grading
104-
105-
This assignment will be graded via peer assessment.
14+
`cacheSolve` will retrieve the inverse from the cache.
15+

0 commit comments

Comments
 (0)