R (ohjelmointikieli): Miksi R: ää kutsutaan R: ksi?


Paras vastaus

Uskon, että tämä tarina ei ole anekdootti. Kuten jokainen sanoi, että R perustuu S: ään ja arvaan, että S tarkoittaa tilastokieliä ja S oli avoimen lähdekielen kieli. Nähdessään S: n kasvavan merkityksen IBM halusi hankkia sen, mutta osa S: n ydinryhmästä halusi pitää sen avoimena lähdekoodina ja loput suostui IBM: n ehdotukseen. Myöhemmin IBM: n hankkimasta osasta tuli S-plus ja avoimen lähdekoodin yhteisö kukoisti ja teki paljon lisäyksiä S: ään, joka lopulta nimettiin uudelleen nimellä R.

Vastaus

Ei ole koskaan pakollista käyttää $ viitattaessa R: ään, mutta se tekee viittaamisen helpoksi monissa tapauksissa. R: n dollaria R käytetään yleensä viitattaessa nimettyyn objektiin suuremmassa dataobjektissa. Tätä voidaan soveltaa kohteisiin, kuten luetteloihin ja datakehyksiin.

Esimerkki

Luodaan ensin luettelo, joka sisältää joitain satunnaisia ​​tietoja:

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

Tämä on satunnaisluettelomme rakenne:

> random

$numbers

[1] 1 2 3

$places

$places$countries

[1] "Canada" "South Africa"

$places$cities

[1] "Vancouver" "Cape Town"

Voimme viitata luettelon eri kohteisiin täsmälleen samalla tavalla kuin yllä olevassa rakenteessa. Jos esimerkiksi haluamme koko paikkaluettelon, joka sisältää maa- ja kaupunkitiedot, voimme viitata siihen seuraavasti:

> random$places

$countries

[1] "Canada" "South Africa"

$cities

[1] "Vancouver" "Cape Town"

Jos haluamme vain maiden nimet, voimme porautua alaspäin luetteloon $: lla:

random$places$countries

[1] "Canada" "South Africa"

Muista, että ei voi käyttää $ viitatessaan atomivektoreihin (vektorit, jotka sisältävät yksittäisiä arvoja, kuten numeroita tai merkkijonoja). Esimerkiksi yllä olevat maiden nimet tallennetaan atomivektoriin. Meidän on käytettävä hakemistonimeä tai numeroa yksittäisen maan hakemiseen:

> random$places$countries[2]

[1] "South Africa"

Vaikka maalla olisi hakemistonimi, emme voi käyttää dollaria.

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

Yritetään hakea "Etelä-Afrikka" $: lla:

> countries$country2

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

Saamme virheen, koska maat ovat atomivektori. Tässä tapauksessa meidän on käytettävä hakemistonimeä tai numeroa:

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

Toivottavasti tämä auttaa!

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *