当我有一个SpatialPolygonsDataFrame对象时,我知道我可以通过两种方式获取数据:
spatial_df@data$column
spatial_df$column
然而,我不明白第二种方法为什么可行。我认为我必须使用
@
来访问data
插槽?这是关于SpatialPolygonsDataFrame
类的独特之处,还是关于S4对象的一般性问题?可能的答案在
sp
文档中提供了。其中提到了SpatialPolygonsDataFrame
类的[
方法。然而,由于$
等价于[[
,而非[
,我不确定那是否就是答案。
$
的结论是不正确的,或者至少是不完整的。请具体查看?"["
。 - IRTFM"y"
将不会被评估,而如果您将名称和对象作为第二个参数放入其中,它将被评估,该值而不是名称将成为结果的基础。 - IRTFM$
的行为方式是由于sp
包内部实现的原因,而与S4无关。但是,您确实建议我更多地了解S4和S3的一般情况,所以我担心我仍然可能会犯错。 - Heisenberg