Nothing
options("rgdal_show_exportToProj4_warnings"="none")
library(sp)
data(meuse)
x = meuse
coordinates(x) = cbind(rnorm(155), rnorm(155))
# should pass:
names(x@data)
names(as.data.frame(x))
class(as(x, "data.frame"))
x = meuse
# coordinates defined as data:
coordinates(x) = cbind(xcoord = rnorm(155), ycoord = rnorm(155))
# should pass:
names(x@data)
names(as.data.frame(x))
is.projected(x)
proj4string(x)
set.seed(13131) # make sample reproducable:
x = meuse[, sample(ncol(meuse))] # 'randomly' shuffle columns
# coordinates defined as variable names:
coordinates(x) = c("x", "y") # no matter their position
#plot(x, cex=.05 * sqrt(x@data[,"zinc"]),
plot(x, cex=.05 * sqrt(as.data.frame(x)[["zinc"]]),pch=1)
title("Meuse: zinc bubble plot")
print(summary(x))
# coordinates defined as formula:
x = meuse[, 1:5]
coordinates(x) = ~x+y
print(summary(x))
# a = NULL
# cc = cbind(sample(1:10), sample(1:10), sample(1:10))
# coordinates(a) = cc
# summary(a)
xx = SpatialPointsDataFrame(matrix(1:10,5,2),data.frame(f = 1:5))
rbind(xx,xx,xx,xx)
grd <- GridTopology(c(1,1), c(1,1), c(10,10))
polys <- as.SpatialPolygons.GridTopology(grd)
summary(rbind(polys[1:10], polys[11:20], polys[21:30]))
plot(rbind(polys[1:10],polys[21:30]))
title("2 x 10 blocks -- test rbind on SpatialPolygons")
l1 = cbind(c(1,2,3),c(3,2,2))
l1a = cbind(l1[,1]+.05,l1[,2]+.05)
l2 = cbind(c(1,2,3),c(1,1.5,1))
Sl1 = Line(l1)
Sl1a = Line(l1a)
Sl2 = Line(l2)
S1 = Lines(list(Sl1, Sl1a), ID="a")
S2 = Lines(list(Sl2), ID="b")
Sl = SpatialLines(list(S1,S2))
summary(as(polys, "SpatialLines"))
summary(as(Sl, "SpatialPoints"))
summary(as(Sl, "SpatialPointsDataFrame"))
SlDf = SpatialLinesDataFrame(Sl, data.frame(xx = c("foo", "bar")), match.ID = FALSE)
summary(as(SlDf, "SpatialPointsDataFrame"))
meuse[["xxx"]] = log(meuse$zinc)
summary(meuse)
meuse$xxy = log(meuse[["zinc"]])
summary(meuse)
# test behaviour on zero-length objects:
demo(meuse, ask = FALSE, echo = FALSE)
p = as(meuse, "SpatialPoints")
p[0]
dim(p[0])
meuse[0,]
dim(meuse[1:3,0])
dim(subset(meuse, zinc < 100, 0))
dim(subset(meuse, , 0))
dim(subset(meuse, F, 0))
dim(meuse.grid[0,])
fullgrid(meuse.grid) = TRUE
dim(meuse.grid[0,])
summary(meuse.grid[0,])
dim(meuse.grid[,0])
summary(meuse.grid[,0])
dim(meuse.grid[0,,0])
summary(meuse.grid[0,,0])
# SpatialPolygons:
L = as(meuse.riv, "SpatialPolygons")
length(L[1])
length(L[0])
summary(L[0])
# SpatialPolygonsDataFrame:
L$something = "bla"
class(L)
length(L[1])
summary(L[1])
length(L[0])
summary(L[0])
# SpatialLines
L = as(meuse.riv, "SpatialLines")
length(L[1])
length(L[0])
summary(L[0])
# SpatialLinesDataFrame
L$something = "bla"
class(L)
length(L[1])
summary(L[1])
length(L[0])
summary(L[0])
m = meuse
all.equal(rbind(m[1:3,], m[5:7,]), rbind(m[1:3,], m[0,], m[5:7,]))
all.equal(rbind(m[1:3,], m[5:7,]), rbind(m[0,], m[1:3,], m[0,], m[5:7,]))
all.equal(rbind(m[1:3,], m[5:7,]), rbind(m[1:3,], m[0,], m[5:7,], m[0,]))
# match.ID settings for SpatialPointsDataFrame():
set.seed(1331)
pts = cbind(1:5, 1:5)
dimnames(pts)[[1]] = letters[1:5]
df = data.frame(a = 1:5)
row.names(df) = letters[5:1]
library(sp)
options(warn=1) # show warnings where they occur
SpatialPointsDataFrame(pts, df) # warn
SpatialPointsDataFrame(pts, df, match.ID = TRUE) # don't warn
SpatialPointsDataFrame(pts, df, match.ID = FALSE) # don't warn
df$m = letters[5:1]
SpatialPointsDataFrame(pts, df, match.ID = "m") # don't warn
dimnames(pts)[[1]] = letters[5:1]
pts
SpatialPointsDataFrame(pts, df) # don't warn: match doesn't reorder
# duplicated row name:
dimnames(pts)[[1]] = letters[c(1:4,1)]
pts
xx = try(x <- SpatialPointsDataFrame(pts, df))
class(xx)
xx
SpatialPointsDataFrame(pts, df, match.ID = FALSE)
try(x <- SpatialPointsDataFrame(pts, df, match.ID = TRUE)) # fail
dimnames(pts)[[1]] = letters[5:1]
row.names(df) = letters[6:2] # non-matching row.names
SpatialPointsDataFrame(pts, df) # do not match.ID
SpatialPointsDataFrame(pts, df, match.ID = FALSE)
try(x <- SpatialPointsDataFrame(pts, df, match.ID = TRUE)) # fail
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.