Rでのエラー解決 「scan(” **** “, skip = , nlines = ) でエラー: scan() 関数は ‘a real’ を期待したのに、得られたのは**でした」

パソコン

はじめに

Rでは、間違った部分が存在すると、エラーが生じます。

最初の頃は、そのエラーだけで何日も費やすことがありますので、エラーとその解決策を今後の方のために残していきたいと思います。

R言語とはプログラミング言語の一つです。特に統計解析に強いとされます。さらにDeep learningの分野でも注目を浴びています。

Rでのエラーでよく出会うものを選んで、その原因と解決法を載せていきたいと思います。

Rをはじめよう生命科学のためのRStudio入門

Rのエラー原因 「scan(” **** “, skip = , nlines = ) でエラー: scan() 関数は ‘a real’ を期待したのに、得られたのは**でした」

今回のエラーは、scan関数を使用した際に生じた問題です。

scan関数は、ファイルデータからベクトルとしてデータを読み取ることが出来て便利です。

(scan関数の使い方については、こちらのサイトがわかりやすいです。)

出てきたエラーは下記です。

「scan(” **** “, skip = , nlines = ) でエラー: scan() 関数は ‘a real’ を期待したのに、得られたのは**でした」

というエラーメッセージが出たので、同じように困っている方がいればと思い、解決までの方法を記載しておきます。

Rでのエラー解決 「scan(” **** “, skip = , nlines = ) でエラー: scan() 関数は ‘a real’ を期待したのに、得られたのは**でした」

scan関数は、数値型データを入力するための関数である。そのため、数値以外のデータが入力されるとエラーとなり、このエラーが出現します。

数値のみのデータにしてからscan関数を用いれば解決します。

 

文字型を読み込みたい場合の解決方法も調べました。

  1. read.table関数を使用する
  2. readline関数、readLines関数を使用する
  3. 文字型としてscan関数を使用する

1. read.table関数を使用する

万能のread.table関数で読み込む方法です。

しかし、メモリや実行速度がscan関数より劣るため、巨大なデータを用いる際は時間がかかります。

私も、巨大なデータ量のcsvファイルを扱うのに、scan関数を使用しています。

2. readline関数、readLines関数を使用する

他の関数も紹介しておきます。

  • read関数(read.table, read.csvなど):ファイルを一括で読み込む
  • readline関数:ファイルを1行のみ読み込む
  • readlines関数:ファイルを1行を1要素としてリスト形式で読み込む

readline関数、readLines関数についての説明で、良いサイトがあまりないですが、

このサイトの(11p, 2.3) あたりが参考になるかもしれません。

pythonでの使い方も似ているので、pythonのサイトを確認しても良いかもしれません。

どこかでreadline関数、readLines関数についての説明記事を作成したいと思います。

3. 文字型としてscan関数を使用する

こちらは、先程のサイトで見つけた方法です。下記のようにlistを用いて

詳細は上記のリンクから確認してください。

ただし、他の数値もすべて文字型に変換してしまいますので、注意が必要です。(数値として指定することも可能とのこと)

x <- scan(“data07.txt”, list(“”,weight=””,””,sex=””),skip=1, nlines=6)

http://cse.naro.affrc.go.jp/takezawa/r-tips/r/46.html

Rの基本的なことであれば、下記の本がオススメです。

2016年に第3版が出ました。少し古いですが、基本が網羅されています。レビューも高評価。

基本ネットで調べれば出てきますが、本として包括的なテキストを持つことは、便利で私は一冊持っておくのが役立っています。

立ち読みも出来ますので、下記リンクから立ち読みしてみてください。

The R Tips 第3版: データ解析環境Rの基本技・グラフィックス活用集

こちらも高評価かつ新しい本になります。特に初心者におすすめの内容です。

知りたい内容があるか、目次で確認してもらえるので、必要であるか確認してみてください。

Rをはじめよう生命科学のためのRStudio入門

コメント

タイトルとURLをコピーしました