希望是关于map-files的最后一个问题。
为什么这不起作用,我该怎么做才对呢?
load(url('http://gadm.org/data/rda/CUB_adm1.RData'))
CUB <- gadm
CUB <- spChFIDs(CUB, paste("CUB", rownames(CUB), sep = "_"))非常感谢!
似乎适用于row.names()
load(url('http://gadm.org/data/rda/CUB_adm1.RData'))
CUB <- gadm
CUB <- spChFIDs(CUB, paste("CUB", row.names(CUB), sep = "_"))发布于 2011-03-01 03:59:44
一旦阅读了?row.names()和?rownames()的帮助,答案就显而易见了。
rownames()函数只知道一些类似矩阵的对象,而CUB不是其中之一,因此它没有rownames()可以找到的行名:
> rownames(CUB)
NULLrow.names()是不同的,它是一个S3泛型函数,这意味着包作者可以为特定类型的对象编写方法,以便可以提取这些对象的行名。
下面是我当前会话中可用于row.names()的方法列表,其中加载了sp包:
> methods(row.names)
[1] row.names.data.frame
[2] row.names.default
[3] row.names.SpatialGrid*
[4] row.names.SpatialGridDataFrame*
[5] row.names.SpatialLines*
[6] row.names.SpatialLinesDataFrame*
[7] row.names.SpatialPixels*
[8] row.names.SpatialPoints*
[9] row.names.SpatialPointsDataFrame*
[10] row.names.SpatialPolygons*
[11] row.names.SpatialPolygonsDataFrame*
Non-visible functions are asterisked对象CUB的类是:
> class(CUB)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"因此,正在使用的是row.names()函数的SpatialPolygonsDataFrame方法,它知道在哪里可以找到所需的行名。
https://stackoverflow.com/questions/5146278
复制相似问题