首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >级别1或更高级别的映射文件上的spChFIDs()

级别1或更高级别的映射文件上的spChFIDs()
EN

Stack Overflow用户
提问于 2011-03-01 02:56:09
回答 1查看 272关注 0票数 1

希望是关于map-files的最后一个问题。

为什么这不起作用,我该怎么做才对呢?

代码语言:javascript
复制
load(url('http://gadm.org/data/rda/CUB_adm1.RData'))
CUB <- gadm
CUB <- spChFIDs(CUB, paste("CUB", rownames(CUB), sep = "_"))

非常感谢!

似乎适用于row.names()

代码语言:javascript
复制
load(url('http://gadm.org/data/rda/CUB_adm1.RData'))
CUB <- gadm
CUB <- spChFIDs(CUB, paste("CUB", row.names(CUB), sep = "_"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-01 03:59:44

一旦阅读了?row.names()?rownames()的帮助,答案就显而易见了。

rownames()函数只知道一些类似矩阵的对象,而CUB不是其中之一,因此它没有rownames()可以找到的行名:

代码语言:javascript
复制
> rownames(CUB)
NULL

row.names()是不同的,它是一个S3泛型函数,这意味着包作者可以为特定类型的对象编写方法,以便可以提取这些对象的行名。

下面是我当前会话中可用于row.names()的方法列表,其中加载了sp包:

代码语言:javascript
复制
> 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的类是:

代码语言:javascript
复制
> class(CUB)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

因此,正在使用的是row.names()函数的SpatialPolygonsDataFrame方法,它知道在哪里可以找到所需的行名。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5146278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档