web-dev-qa-db-fra.com

R: Que sont les machines à sous?

Est-ce que quelqu'un sait ce qu'est une fente dans R?

Je n'ai pas trouvé l'explication de sa signification. J'obtiens une définition récursive: "La fonction de slot renvoie ou définit des informations sur les slots individuels d'un objet"

De l'aide serait appréciée, Merci - Alley

68
user573347

Les slots sont liés aux objets S4. Un emplacement peut être vu comme une partie, un élément ou une "propriété" d'un objet. Supposons que vous avez un objet de voiture, alors vous pouvez avoir les emplacements "prix", "nombre de portes", "type de moteur", "kilométrage".

En interne, cela représente une liste. Un exemple :

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

Ici, le prix, le nombre de portes, le type de moteur et le kilométrage sont des emplacements de la classe S4 "Voiture". Ceci est un exemple trivial, dans la réalité, les machines à sous peuvent être à nouveau des objets complexes.

Vous pouvez accéder aux machines à sous de nombreuses façons:

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

ou par la construction d'une méthode spécifique (voir documentation supplémentaire).

Pour plus d'informations sur la programmation S4, voir cette question . Si le concept vous semble encore vague, une introduction générale à la programmation orientée objet pourrait être utile.

PS: Faites attention à la différence avec les cadres de données et les listes, où vous utilisez $ pour accéder aux variables/éléments nommés.

69
Joris Meys

Tout comme names(variable) liste tous les $- noms accessibles d’une variable complexe, de même

slotNames(object) liste tous les emplacements d'un objet.

Très pratique pour découvrir ce que votre objet fit contient pour le plaisir des yeux.

16
tim

Outre les ressources indiquées par @Joris, ainsi que sa propre réponse, essayez de lire ?Classes, qui inclut les éléments suivants sur les emplacements:

 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.
      ....
10
Gavin Simpson

Aucune idée pourquoi R doit tout redéfinir. La plupart des langages de programmation normaux les appellent "propriétés" ou "attributs". 

0
Max