R:删除SpatialPixelsDataFrame对象的插槽中的属性

时间:2013-07-13 12:40:19

标签: r attributes slots

我想绘制存储在SpatialPixelsDataFrame对象中的克里金结果。使用spplot,它会自动创建一个包含var1.pred,var1.var和var1.stdev的图。

这很好,但我希望spplot函数只绘制var1.pred,这就是为什么我要删除var1.var和var1.stdev(它们作为属性存储在插槽@data中)。

我不知道该怎么做 - 有人可以帮忙吗?提前谢谢!

假设我的对象被称为“aa”,那么这里有关于它的信息:

str(aa)
Formal class 'SpatialPixelsDataFrame' [package "sp"] with 7 slots
 ..@ data       :'data.frame':  4986 obs. of  3 variables:
 .. ..$ var1.pred : num [1:4986] 5.95 5.96 5.96 5.94 5.95 ...
 .. ..$ var1.var  : num [1:4986] 0.000445 0.0005 0.00072 0.008354 0.000917 ...
 .. ..$ var1.stdev: num [1:4986] 0.0211 0.0224 0.0268 0.0914 0.0303 ...
 ..@ coords.nrs : int [1:2] 1 2
 ..@ grid       :Formal class 'GridTopology' [package "sp"] with 3 slots
 .. .. ..@ cellcentre.offset: Named num [1:2] 0.139 0.408
 .. .. .. ..- attr(*, "names")= chr [1:2] "x1" "x2"
 .. .. ..@ cellsize         : Named num [1:2] 0.174 0.174
 .. .. .. ..- attr(*, "names")= chr [1:2] "x1" "x2"
 .. .. ..@ cells.dim        : Named int [1:2] 56 154
 .. .. .. ..- attr(*, "names")= chr [1:2] "x1" "x2"
 ..@ grid.index : int [1:4986] 8604 8548 8492 8435 8436 8379 8380 8323 8324 8325 ...
 ..@ coords     : num [1:4986, 1:2] 6.22 6.22 6.22 6.05 6.22 ...
 .. ..- attr(*, "dimnames")=List of 2
 .. .. ..$ : NULL
 .. .. ..$ : chr [1:2] "x1" "x2"
 ..@ bbox       : num [1:2, 1:2] 0.139 0.408 9.697 26.994
 .. ..- attr(*, "dimnames")=List of 2
 .. .. ..$ : chr [1:2] "x1" "x2"
 .. .. ..$ : chr [1:2] "min" "max"
 ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
 .. .. ..@ projargs: chr NA

3 个答案:

答案 0 :(得分:1)

请下次提供reproductible example,无需在此处删除。

spplot的帮助文件中

  spplot.grid(obj, zcol = names(obj), ..., names.attr, scales = list(draw = FALSE),
  xlab = NULL, ylab = NULL, aspect = mapasp(obj,xlim,ylim),
  panel = panel.gridplot, sp.layout = NULL, formula, xlim = bbox(obj)[1, ],
  ylim = bbox(obj)[2, ], checkEmptyRC = TRUE)

....................................................................
....................................................................
....................................................................

 obj: object of class extending Spatial-class

zcol: character; attribute name(s) or column number(s) in attribute
      table
....................................................................
....................................................................
....................................................................

当你陷入R时,首先要尝试的是帮助文件。 在这里您可以看到zcol参数可以解决您的问题。

使用包含5列的meuse.grid数据集,我们可以决定像这样绘制“土壤”列

require(sp)
data(meuse.grid) 
coordinates(meuse.grid) = c("x", "y") 
gridded(meuse.grid) <- TRUE

class(meuse.grid)
[1] "SpatialPixelsDataFrame"
attr(,"package")
[1] "sp"

names(meuse.grid)
[1] "part.a" "part.b" "dist"   "soil"   "ffreq" 

spplot(meuse.grid, "soil")

这个也会起作用

spplot(meuse.grid["soil"])

答案 1 :(得分:0)

@ data是一个data.frame,所以你可以像数据帧一样操作它:

a@data<-a@data[,1,drop=FALSE]

drop = FALSE参数使[]不会尝试将结果减少到最小维度。

答案 2 :(得分:0)

指定剧情名称:

  $router->group([
      'namespace' => 'Admin',
      'middleware' => 'auth',
    ], function () {
        resource('admin/adsense', 'AdsenseController');
        resource('admin/post', 'PostController');
    });