Meilleure réponse
Je crois que cette histoire nest pas anecdotique. Comme tout le monde la dit, R est basé sur S et je suppose que S signifie langage statistique et S était un langage open source. Voyant l’importance croissante de S, IBM voulait l’acquérir, mais la partie de l’équipe de base de S voulait la conserver en open source et la partie restante a été acceptée pour la proposition d’IBM. Plus tard, IBM a acquis une partie est devenue S-plus et la communauté open source a prospéré et a fait de nombreux ajouts à S et qui a finalement été renommé en R.
Réponse
Il nest jamais obligatoire dutiliser $ lors du référencement dans R, mais cela facilite le référencement dans de nombreux cas. Le $ in R est généralement utilisé lors du référencement dun objet nommé dans un objet de données plus volumineux. Cela peut être appliqué à des objets tels que des listes et des blocs de données.
Exemple
Créons dabord une liste contenant des informations aléatoires:
random <- list("numbers" = c(1, 2, 3), "places" = list("countries" = c("Canada", "South Africa"), "cities" = c("Vancouver", "Cape Town")))
Voici la structure de notre liste aléatoire:
> random
$numbers
[1] 1 2 3
$places
$places$countries
[1] "Canada" "South Africa"
$places$cities
[1] "Vancouver" "Cape Town"
Nous pouvons référencer les différents éléments de la liste exactement de la même manière que celle indiquée dans la structure ci-dessus. Par exemple, si nous voulons la liste complète des «lieux», qui contient des informations sur le pays et la ville, nous pouvons la référencer comme suit:
> random$places
$countries
[1] "Canada" "South Africa"
$cities
[1] "Vancouver" "Cape Town"
Si nous ne voulons que les noms de pays, nous pouvons utiliser $ pour explorer plus en profondeur la liste:
random$places$countries
[1] "Canada" "South Africa"
Gardez à lesprit que nous ne peut pas utiliser le $ lors du référencement de vecteurs atomiques (vecteurs contenant des valeurs uniques, telles que des nombres ou des chaînes de caractères). Par exemple, les noms de pays ci-dessus sont stockés dans un vecteur atomique. Nous devons utiliser le nom ou le numéro dindex, pour récupérer un seul pays:
> random$places$countries[2]
[1] "South Africa"
Même si le pays avait un nom dindex, nous ne pourrons pas utiliser le $.
> countries <- c("country1" = "Canada", "country2" = "South Africa")
Essayons de récupérer "Afrique du Sud" avec le $:
> countries$country2
Error in countries$country2 : $ operator is invalid for atomic vectors
Nous obtenons une erreur, car les pays sont un vecteur atomique. Dans ce cas, nous devons utiliser le nom ou le numéro dindex:
> countries["country2"] #using the name of the item
country2
"South Africa"
> countries[2] #using the index of the country within the vector
country2
"South Africa"
Jespère que cela vous aidera!