Substitute values in a Raster* object
Substitute (replace) values in a Raster* object with values in a data.frame
. The data.frame
should have a column to identify the key (ID) to match with the cell values of the Raster* object, and one or more columns with replacement values. By default these are the first and second column but you can specify other columns with arguments by
and which
. It is possible to match one table to multiple layers, or to use multiple layers as a single key, but not both.
## S4 method for signature 'Raster,data.frame' subs(x, y, by=1, which=2, subsWithNA=TRUE, filename='', ...)
x |
Raster* object |
y |
data.frame |
by |
column number(s) or name(s) identifying the key (ID) to match rows in data.frame |
which |
column number or name that has the new (replacement) values |
subsWithNA |
logical. If |
filename |
character. Optional output filename |
... |
additional arguments as for |
You could obtain the same result with reclassify
, but subs
is more efficient for simple replacement. Use reclassify
if you want to replace ranges of values with new values.
You can also replace values using a fitted model. E.g. fit a model to glm
or loess
and then call predict
Raster object
r <- raster(ncol=10, nrow=10) values(r) <- round(runif(ncell(r)) * 10) df <- data.frame(id=2:8, v=c(10,10,11,11,12:14)) x <- subs(r, df) x2 <- subs(r, df, subsWithNA=FALSE) df$v2 <- df$v * 10 x3 <- subs(r, df, which=2:3) s <- stack(r, r*3) names(s) <- c('first', 'second') x4 <- subs(s, df) x5 <- subs(s, df, which=2:3)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.