[oop] R : 슬롯이란 무엇입니까?

R에 슬롯이 무엇인지 아는 사람이 있습니까?

나는 그 의미에 대한 설명을 찾지 못했습니다. 재귀 적 정의를 얻었습니다. “슬롯 함수는 객체의 개별 슬롯에 대한 정보를 반환하거나 설정합니다.”

도움을 주시면 감사하겠습니다-Alley



답변

슬롯은 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

여기서 price, numberDoors, typeEngine 및 마일리지는 S4 클래스 “Car”의 슬롯입니다. 이것은 사소한 예입니다. 실제로 슬롯 자체는 다시 복잡한 객체가 될 수 있습니다.

슬롯은 다양한 방법으로 액세스 할 수 있습니다.

> aCar@price
[1] 20000
> slot(aCar,"typeEngine")
[1] "V6"

또는 특정 방법의 구성을 통해 (추가 문서 참조).

S4 프로그래밍에 대한 자세한 내용은 이 질문을 참조하십시오 . 개념이 여전히 모호하게 들리면 객체 지향 프로그래밍의 일반적인 소개가 도움이 될 수 있습니다.

추신 : $명명 된 변수 / 요소에 액세스 하는 데 사용 하는 데이터 프레임 및 목록의 차이를 염두에 두십시오 .


답변

복잡한 변수의 액세스 가능한 names(variable)모든 $이름을 나열하는 것과 마찬가지로

slotNames(object) 개체의 모든 슬롯을 나열합니다.

보기의 즐거움을 위해 맞는 개체에 포함 된 장점을 발견하는 데 매우 편리합니다.


답변

@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.
      ....


답변

R이 모든 것을 재정의해야하는 이유를 모릅니다. 대부분의 일반적인 프로그래밍 언어는이를 “속성”또는 “속성”이라고합니다.


답변