ベストアンサー
この話は逸話ではないと思います。誰もが言っているように、RはSに基づいており、Sは統計言語を表し、Sはオープンソース言語だったと思います。 Sの重要性が増しているのを見て、IBMはそれを取得したかったが、Sのコアチームの一部はそれをオープンソースとして維持したいと考え、残りの部分はIBMの提案に同意した。その後、IBMが買収した部分はS-plusになり、オープンソースコミュニティが繁栄し、Sに多くの追加を行い、最終的にRに名前が変更されました。
回答
使用は必須ではありません。 Rで参照する場合は$ですが、多くの場合、参照が簡単になります。 Rの$は通常、より大きなデータオブジェクト内の名前付きオブジェクトを参照するときに使用されます。これは、リストやデータフレームなどのオブジェクトに適用できます。
例
まず、ランダムな情報を含むリストを作成しましょう:
random <- list("numbers" = c(1, 2, 3), "places" = list("countries" = c("Canada", "South Africa"), "cities" = c("Vancouver", "Cape Town")))
ランダムリストの構造は次のとおりです。
> random
$numbers
[1] 1 2 3
$places
$places$countries
[1] "Canada" "South Africa"
$places$cities
[1] "Vancouver" "Cape Town"
上記の構造に示されているのとまったく同じ方法で、リスト内のさまざまなアイテムを参照できます。たとえば、国と都市の情報を含む「場所」リスト全体が必要な場合は、次のように参照できます。
> random$places
$countries
[1] "Canada" "South Africa"
$cities
[1] "Vancouver" "Cape Town"
国名のみが必要な場合は、$を使用してリストをさらに掘り下げることができます。
random$places$countries
[1] "Canada" "South Africa"
覚えておいてくださいアトミックベクトル(数値や文字列などの単一の値を含むベクトル)を参照する場合、$は使用できません。たとえば、上記の国名は原子ベクトル内に格納されます。単一の国を取得するには、インデックス名または番号を使用する必要があります:
> random$places$countries[2]
[1] "South Africa"
国にインデックス名があったとしても、$は使用できません。
> countries <- c("country1" = "Canada", "country2" = "South Africa")
$を使用して「南アフリカ」を取得してみましょう:
> countries$country2
Error in countries$country2 : $ operator is invalid for atomic vectors
国は原子ベクトルであるため、エラーが発生します。この場合、インデックス名またはインデックス番号を使用する必要があります:
> 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"
これがお役に立てば幸いです!