R (język programowania): Dlaczego R nazywa się R?


Najlepsza odpowiedź

Uważam, że ta historia nie jest anegdotyczna. Jak każdy powiedział, R jest oparty na S i domyślam się, że S oznacza język statystyczny, a S był językiem open source. Widząc rosnące znaczenie S, IBM chciał go nabyć, ale część podstawowego zespołu S chciała zachować go jako oprogramowanie typu open source, a pozostała część zgodziła się na propozycję IBM. Później IBM nabył część, a następnie stał się S-plus, a społeczność open source rozkwitła i wprowadziła wiele dodatków do S, a ostatecznie zmieniła nazwę na R.

Odpowiedź

Nigdy nie jest to obowiązkowe $ podczas odwoływania się w R, ale w wielu przypadkach ułatwia odwoływanie się. Znak $ w R jest zwykle używany podczas odwoływania się do nazwanego obiektu w większym obiekcie danych. Można to zastosować do obiektów takich jak listy i ramki danych.

Przykład

Najpierw utwórzmy listę zawierającą losowe informacje:

random <- list("numbers" = c(1, 2, 3), "places" = list("countries" = c("Canada", "South Africa"), "cities" = c("Vancouver", "Cape Town")))

Oto struktura naszej losowej listy:

> random

$numbers

[1] 1 2 3

$places

$places$countries

[1] "Canada" "South Africa"

$places$cities

[1] "Vancouver" "Cape Town"

Możemy odwoływać się do różnych pozycji na liście w dokładnie taki sam sposób, jak pokazano na powyższej strukturze. Na przykład, jeśli chcemy mieć całą listę „miejsc”, która zawiera informacje o kraju i mieście, możemy odwołać się do niej w ten sposób:

> random$places

$countries

[1] "Canada" "South Africa"

$cities

[1] "Vancouver" "Cape Town"

Jeśli chcemy tylko nazwy krajów, możemy użyć znaku $, aby przejść dalej w dół listy:

random$places$countries

[1] "Canada" "South Africa"

Pamiętaj, że nie można używać znaku $ podczas odwoływania się do wektorów atomowych (wektorów zawierających pojedyncze wartości, takie jak liczby lub ciągi znaków). Na przykład powyższe nazwy krajów są przechowywane w wektorze atomowym. Musimy użyć nazwy lub numeru indeksu, aby pobrać pojedynczy kraj:

> random$places$countries[2]

[1] "South Africa"

Nawet jeśli kraj miałby nazwę indeksu, nie będziemy mogli użyć znaku $.

> countries <- c("country1" = "Canada", "country2" = "South Africa")

Spróbujmy pobrać „RPA” za pomocą znaku $:

> countries$country2

Error in countries$country2 : $ operator is invalid for atomic vectors

Otrzymujemy błąd, ponieważ kraje są wektorami atomowymi. W tym przypadku musimy użyć nazwy lub numeru indeksu:

> 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"

Mam nadzieję, że to pomoże!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *