1 级或更高级别映射文件上的 spChFIDs()
希望是关于地图文件的最后一个问题(之一)。
为什么这不起作用,我该怎么做呢?
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 = "_"))
Hopefully (one of) the last question on map-files.
Why is this not working, and how would I do that right?
load(url('http://gadm.org/data/rda/CUB_adm1.RData'))
CUB <- gadm
CUB <- spChFIDs(CUB, paste("CUB", rownames(CUB), sep = "_"))
Thank you very much!!!
seems to work with row.names()
load(url('http://gadm.org/data/rda/CUB_adm1.RData'))
CUB <- gadm
CUB <- spChFIDs(CUB, paste("CUB", row.names(CUB), sep = "_"))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一旦阅读了
?row.names()
和?rownames()
的帮助,答案就显而易见了。rownames()
函数仅了解有关类似矩阵的对象的一些信息,而CUB
不是其中之一,因此它没有rownames( )
可以发现:row.names()
是不同的,它是一个 S3 通用函数,这意味着包作者可以为特定类型的对象编写方法,以便这些对象的行名称可以提取。以下是当前会话中可用于
row.names()
的方法列表,加载了sp
包:对象
CUB
的类code> 是:所以发生的情况是使用了 row.names() 函数的 SpatialPolygonsDataFrame 方法,并且它知道在哪里可以找到所需的行名称。
The answer is apparent once one reads the help for
?row.names()
and?rownames()
.The
rownames()
function only knows something about matrix-like objects, andCUB
is not one of those, hence it doesn't have row names thatrownames()
can find:row.names()
is different, it is an S3 generic function and that means package authors can write methods for specific types of objects such that the row names of those objects can be extracted.Here is a list of the methods available for
row.names()
in my current session, with thesp
package loaded:The class of the object
CUB
is:So what is happening is that the
SpatialPolygonsDataFrame
method of therow.names()
function is being used and it knows where to find the required row names.