R初心者がつまずいた「object not found」エラー|原因は大文字と小文字の違いでした

RStudioでobject 'b01' not foundエラーが表示され、B01に修正して実行できた画面放送大学の授業で、Rの復習をしていました。昨日より少しわかってきた感覚があり、オンライン授業を何度も見返しながら、RStudioでクロス集計の確認をしていました。

ところが、途中で次のようなエラーが出ました。

Error: object 'b01' not found

最初は、「あれ、データが消えたのかな?」と思いました。

でも、原因はとてもシンプルでした。

Rでは、大文字と小文字が区別される。

たったこれだけのことでした。


🔰 RStudioで復習していた内容

この日、私が確認していたのは、Rのクロス集計です。

使っていたデータは、B01 という名前のデータでした。

RStudioの右上にあるEnvironmentにも、きちんと B01 と表示されています。

そして、次のようなコードを使って、1列目と2列目の関係を集計していました。

table(B01[,1:2]) %>% 
  prop.table() %>% 
  addmargins()

このコードは、簡単に言うと次のような流れです。

  • table() で集計表を作る
  • prop.table() で割合にする
  • addmargins() で合計行・合計列を追加する

授業で見た内容を、もう一度自分の手で確認していました。

オンライン授業は便利です。

一度で理解できなくても、止めたり、戻したり、何度も見返したりできます。

昨日はよくわからなかった部分も、今日もう一度見てみると、「あ、これはこういう意味だったのか」と少しずつ見えてきます。


⚠️ 出てきたエラー:「object ‘b01’ not found」

ところが、途中でこのようなエラーが出ました。

Error: object 'b01' not found

日本語にすると、

「b01 というオブジェクトは見つかりません」

という意味です。

初心者の私は、一瞬あせりました。

「さっきまで使えていたのに」

「データが読み込まれていないのかな」

「どこかで消してしまったのかな」

そんなふうに考えてしまいます。

でも、RStudioのEnvironmentを見ると、データはちゃんと存在していました。

そこに表示されていた名前は、b01 ではなく、B01 でした。


💡 原因は「B01」と「b01」の違い

今回の原因は、データ名の大文字と小文字の違いでした。

B01
b01

人間の目で見ると、ほとんど同じに見えます。

でも、Rにとってはこの2つは別物です。

B01b01 は、まったく別の名前として扱われます。

つまり、Environmentに B01 というデータがあっても、コンソールに b01 と入力すると、Rはこう判断します。

b01 という名前のデータはありません」

その結果、次のエラーが出ます。

Error: object 'b01' not found

正しくは、次のように大文字で入力する必要がありました。

table(B01[,1:2]) %>% 
  prop.table() %>% 
  addmargins()

📌 Rでは大文字と小文字を区別する

今回の失敗で、Rの大事な基本をひとつ覚えました。

Rでは、大文字と小文字を区別します。

たとえば、次のような名前はすべて別物です。

data
Data
DATA

人間なら、「同じような名前」と感じるかもしれません。

でも、Rは正確に区別します。

これは、最初は少し面倒に感じます。

でも、プログラミングではとても大切な考え方です。

コンピュータは、こちらの気持ちを推測してはくれません。

「たぶんこれのことだろう」とは考えてくれないのです。

だからこそ、名前を正確に書く必要があります。


🧠 この間違いは、初心者にとって役に立つ

今回の間違いは、小さなミスです。

でも、私はとても役に立つ間違いだったと思っています。

なぜなら、Rを学び始めた人がつまずきやすいポイントだからです。

エラーが出ると、初心者は「自分には向いていないのかもしれない」と思ってしまうことがあります。

でも、実際には、原因はとても小さなことだったりします。

今回もそうでした。

統計の考え方がわからなかったわけではありません。

Rの仕組み全体を理解していなかったわけでもありません。

ただ、B01b01 と入力していただけです。

それでもRは止まります。

だからこそ、初心者のうちは、エラーが出たときに次のように考えるとよいと思いました。

  • データ名は合っているか
  • 大文字と小文字は合っているか
  • Environmentに表示されている名前と同じか
  • スペルミスはないか
  • 全角文字や余分な空白が入っていないか

難しい原因を考える前に、まずは名前を確認する。

これだけでも、かなり落ち着いて対応できるようになりそうです。


📊 今日確認したクロス集計の内容

今回の復習では、クロス集計も確認しました。

たとえば、studyresult の関係を見る表です。

結果は、次のような形になっていました。

             result
study        不合格   合格   Sum
勉強した      0.250  0.500  0.750
勉強しなかった 0.125  0.125  0.250
Sum           0.375  0.625  1.000

これは、全体を1として見たときの割合です。

たとえば、

  • 勉強して合格した人は 0.500、つまり50%
  • 勉強して不合格だった人は 0.250、つまり25%
  • 勉強しなかったけれど合格した人は 0.125、つまり12.5%
  • 勉強しなくて不合格だった人は 0.125、つまり12.5%

という意味になります。

最初は数字が並んでいるだけに見えました。

でも、ゆっくり見ていくと、表の意味が少しずつわかってきました。

Rは、ただ計算するだけではなく、データの関係を見やすくしてくれる道具なのだと感じました。


🌱 昨日より少しわかる。それで十分

今日は疲れていたので、新しいところにはあまり進まず、昨日の復習を中心にしました。

でも、それでよかったと思います。

昨日はよくわからなかったコードも、今日もう一度見ると、少しだけ意味が見えてきました。

table() は集計表を作る。

prop.table() は割合にする。

addmargins() は合計を追加する。

そして、Rでは B01b01 は別物。

今日の学びは、このくらいです。

でも、初心者にとっては十分大きな一歩だと思います。

プログラミングやデータ分析の学習は、一気に理解するものではないのかもしれません。

見て、動かして、間違えて、直して、もう一度見る。

その繰り返しで、少しずつ体に入っていくのだと思います。


✅ まとめ:Rの「object not found」は、まず名前を確認する

今回のエラーから学んだことをまとめます。

  • Rでは大文字と小文字を区別する
  • B01b01 は別物
  • object not found は「その名前のデータが見つからない」という意味
  • エラーが出たら、まずEnvironmentの名前を確認する
  • 小さな間違いも、初心者にとっては大事な学びになる

RStudioの画面でエラーが出ると、最初は不安になります。

でも、今回のように原因をひとつずつ確認していくと、少しずつ対応できるようになります。

昨日より少しわかる。

今日はそれだけで十分です。

これからも、放送大学でのR学習を少しずつ記録していきたいと思います。


💻 これからRやプログラミングを学ぶ方へ

Rやプログラミングを学び始めると、最初は小さなエラーで何度も止まります。

でも、それは失敗ではなく、コンピュータとのやり取りに慣れていく過程なのだと思います。

私自身も、まだ学習の途中です。

だからこそ、初心者がどこでつまずくのか、どんなところで不安になるのかを、実感を持って書けます。

これから学ぶ方には、完璧を目指すよりも、まずは「昨日より少しわかる」を大切にしてほしいです。

RStudioでエラーが出ても、あわてなくて大丈夫です。

まずは、データ名を確認する。

大文字と小文字を確認する。

そこからで十分です。

上部へスクロール