R (programmeringsspråk): Varför kallas R för R?


Bästa svaret

Jag tror att den här historien inte är anekdotisk. Som alla sa är R baserat på S och jag antar att S står för statistiskt språk och S var ett öppen källkodsspråk. Att se den växande betydelsen av S IBM ville förvärva den, men den del av S-kärngruppen ville behålla den som öppen källkod och den återstående delen gick med på IBMs förslag. Senare förvärvade IBM en del och blev S-plus och öppen källkodsgrupp blomstrade och gjorde många tillägg till S och som så småningom döptes om till R. $ vid referens i R, men det gör det enkelt att referera i många fall. $ I R används vanligtvis när man refererar till ett namngivet objekt i ett större dataobjekt. Detta kan tillämpas på objekt som listor och dataramar.

Exempel

Låt oss först skapa en lista som innehåller slumpmässig information:

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

Detta är strukturen för vår slumpmässiga lista:

> random

$numbers

[1] 1 2 3

$places

$places$countries

[1] "Canada" "South Africa"

$places$cities

[1] "Vancouver" "Cape Town"

Vi kan referera till de olika objekten i listan på exakt samma sätt som visas i strukturen ovan. Om vi ​​till exempel vill ha hela "platser" -listan, som innehåller land- och stadsinformation, kan vi referera till den så här:

> random$places

$countries

[1] "Canada" "South Africa"

$cities

[1] "Vancouver" "Cape Town"

Om vi ​​bara vill ha landsnamnen kan vi använda $ för att borra längre ner i listan:

random$places$countries

[1] "Canada" "South Africa"

Tänk på att vi kan inte använda $ när man hänvisar till atomvektorer (vektorer som innehåller enstaka värden, som siffror eller teckensträngar). Till exempel lagras namnen ovan i en atomvektor. Vi måste använda indexnamnet eller numret för att hämta ett enda land:

> random$places$countries[2]

[1] "South Africa"

Även om landet hade ett indexnamn kan vi inte använda $.

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

Låt oss försöka hämta "Sydafrika" med $:

> countries$country2

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

Vi får ett fel, eftersom länder är en atomvektor. I det här fallet måste vi använda indexnamnet eller numret:

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

Hoppas det hjälper!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *