我是《R应用空间数据分析》一书的中文读者,该书对空间分析工作非常有用。我试图用Rpy2将R代码翻译成python,因为python可以处理更复杂的数据源。但是我对Rpy2代码有一个问题。NY8数据随电子邮件附上。 R代码为:
library(rgdal)
NY8<-readOGR(".","NY8_utm18")
Syracuse<-NY8[NY8$AREANAME=="Syracuse city",]
Sy2_nb<-poly2nb(Syracuse,queen=FALSE)
library(spdep)
Sy2_nb<-poly2nb(Syracuse,queen=FALSE)
Sy2_lw<-nb2listw(Sy2_nb)
moran.plot(NY$POP8,Sy2_lw)
当我用Rpy2翻译它时,代码是:
>>> from rpy2.robjects.packages import importr
>>> utils = importr('utils')
>>> utils.install_packages('rgdal')
>>> rgdal=importr('rgdal')
>>> import os
>>> os.chdir("C:\\PYDATA\\NY")
>>> NY8=rgdal.readOGR(".","NY8_utm18")
>>> print(robjects.r['summary'](NY8))
当我想翻译代码“Syracuse<;-NY8[NY8$AREANAME==”Syracuse city“,] “,例如:
>>>Syracuse=NY8[NY8$AREANAME=="Syracuse city",]
显示错误消息:SyntaxError:无效语法 似乎我无法通过“$”提取“AREANAME”,因为“$”在python中是非法的
使用方法
rx2
(https://rpy2.github.io/doc/latest/html/vector.html#extracting-r-style):如果这是一个S4对象(您的评论表明是这样),一个简单的方法是获取泛型“$”并将其用作函数
无法获得可接受的答案,因此编写了此函数:
现在可以使用对象作为第一个参数,子集作为另一个参数来调用
subset_RS4
我是这样使用它的:
相关问题 更多 >
编程相关推荐