有人知道R中的插槽吗?
我没有找到其含义的解释。我得到一个递归定义:“插槽函数返回或设置有关对象各个插槽的信息”
帮助将不胜感激,谢谢-胡同
Answers:
插槽链接到S4对象。插槽可以看作是对象的一部分,元素或“属性”。假设您有一个汽车对象,那么您可以拥有“价格”,“门数”,“发动机类型”,“里程”插槽。
在内部,它表示一个列表。一个例子 :
setClass("Car",representation=representation(
price = "numeric",
numberDoors="numeric",
typeEngine="character",
mileage="numeric"
))
aCar <- new("Car",price=20000,numberDoors=4,typeEngine="V6",mileage=143)
> aCar
An object of class "Car"
Slot "price":
[1] 20000
Slot "numberDoors":
[1] 4
Slot "typeEngine":
[1] "V6"
Slot "mileage":
[1] 143
在这里,价格,门数,类型引擎和里程数是S4类“汽车”的插槽。这是一个简单的示例,实际上插槽本身可以再次成为复杂的对象。
插槽可以通过多种方式访问:
> aCar@price
[1] 20000
> slot(aCar,"typeEngine")
[1] "V6"
或通过构造特定方法(请参阅其他文档)。
有关S4编程的更多信息,请参见此问题。如果这个概念对您来说仍然很模糊,那么面向对象编程的一般介绍可能会有所帮助。
PS:请注意与数据框和列表的区别,在数据框和列表中,您可以使用$
它们访问命名的变量/元素。
slot(aCar, "price")
作为另一种用法,尤其是在op正在查看该slot()
函数时
getSlots()
,或slotNames()
为其指定名称。
除了@Joris指向的资源之外,还有他自己的答案,请尝试阅读?Classes
,其中包括以下内容:
Slots:
The data contained in an object from an S4 class is defined
by the _slots_ in the class definition.
Each slot in an object is a component of the object; like
components (that is, elements) of a list, these may be
extracted and set, using the function ‘slot()’ or more often
the operator ‘"@"’. However, they differ from list
components in important ways. First, slots can only be
referred to by name, not by position, and there is no partial
matching of names as with list elements.
....
slot()
功能帮助中获得的-并不意味着要记录什么是插槽,而是如何访问它们。