はじめに
Rでは、間違った部分が存在すると、エラーが生じます。
最初の頃は、そのエラーだけで何日も費やすことがありますので、エラーとその解決策を今後の方のために残していきたいと思います。
R言語とはプログラミング言語の一つです。特に統計解析に強いとされます。さらにDeep learningの分野でも注目を浴びています。
Rでのエラーでよく出会うものを選んで、その原因と解決法を載せていきたいと思います。
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関数を用いれば解決します。
文字型を読み込みたい場合の解決方法も調べました。
- read.table関数を使用する
- readline関数、readLines関数を使用する
- 文字型として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の基本技・グラフィックス活用集
こちらも高評価かつ新しい本になります。特に初心者におすすめの内容です。
知りたい内容があるか、目次で確認してもらえるので、必要であるか確認してみてください。
コメント