Legjobb válasz
Úgy gondolom, hogy ez a történet nem anekdotikus. Mivel mindenki azt mondta, hogy R S-n alapul, és feltételezem, hogy S statisztikai nyelvet jelent, S pedig nyílt forráskódú nyelv volt. Az S növekvő jelentőségét látva az IBM szerette volna megszerezni, de az S alapcsapatának része nyitott forrásként kívánta tartani, a fennmaradó rész pedig beleegyezett az IBM javaslatába. Később az IBM megszerzett része tovább vált S-plusszá, és a nyílt forráskódú közösség virágzott, és rengeteg kiegészítést tett az S-hez, amelyet végül R névre kereszteltek át. $, amikor R-ben hivatkozunk, de sok esetben megkönnyíti a hivatkozást. Az $ R értéket általában akkor használjuk, ha egy megnevezett objektumra hivatkozunk egy nagyobb adatobjektumon belül. Ez alkalmazható objektumokra, például listákra és adatkeretekre.
Példa
Először hozzunk létre egy listát, amely véletlenszerű információkat tartalmaz:
random <- list("numbers" = c(1, 2, 3), "places" = list("countries" = c("Canada", "South Africa"), "cities" = c("Vancouver", "Cape Town")))
Ez a véletlenszerű listánk felépítése:
> random
$numbers
[1] 1 2 3
$places
$places$countries
[1] "Canada" "South Africa"
$places$cities
[1] "Vancouver" "Cape Town"
A lista különböző elemeire pontosan ugyanúgy hivatkozhatunk, mint a fenti struktúrában látható. Például, ha a teljes „helyek” listát akarjuk, amely ország- és városinformációkat tartalmaz, akkor erre hivatkozhatunk:
> random$places
$countries
[1] "Canada" "South Africa"
$cities
[1] "Vancouver" "Cape Town"
Ha csak az országneveket akarjuk, akkor a $ -val továbbfúrhatjuk a listát:
random$places$countries
[1] "Canada" "South Africa"
Ne feledje, hogy nem használhatja a $ -ot az atomvektorok hivatkozásakor (olyan vektorok, amelyek egyetlen értéket tartalmaznak, például számokat vagy karakterláncokat). Például a fenti országneveket egy atomvektor tartalmazza. Az index nevét vagy számát kell használnunk egyetlen ország lekérdezéséhez:
> random$places$countries[2]
[1] "South Africa"
Még akkor is, ha az országnak indexneve volt, nem tudjuk használni a $ -t.
> countries <- c("country1" = "Canada", "country2" = "South Africa")
Próbáljuk meg letölteni a „Dél-Afrikát” a $:
> countries$country2
Error in countries$country2 : $ operator is invalid for atomic vectors
Hibát kapunk, mert az országok atomvektorok. Ebben az esetben az index nevét vagy számát kell használnunk:
> 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"
Remélem, ez segít!