実現したいこと
プログラムを実行して図を表示させたいです。
発生している問題・分からないこと
csvを読み込む時にエラーが出ているみたいです。
エラーメッセージ
error
1Warning messages: 21: In read.table(file = file, header = header, sep = sep, quote = quote, : 3 line 1 appears to contain embedded nulls 42: In read.table(file = file, header = header, sep = sep, quote = quote, : 5 line 2 appears to contain embedded nulls 63: In read.table(file = file, header = header, sep = sep, quote = quote, : 7 line 3 appears to contain embedded nulls 84: In read.table(file = file, header = header, sep = sep, quote = quote, : 9 line 4 appears to contain embedded nulls 105: In read.table(file = file, header = header, sep = sep, quote = quote, : 11 line 5 appears to contain embedded nulls 126: In scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : 13 EOF within quoted string 147: In scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : 15 embedded nul(s) found in input
該当のソースコード
# # Step 1 # データの読み込みと整形 # dat <- read.csv("EatOut.csv") rownames(dat) <- dat[, 1] dat <- dat[, -1] # データの確認 head(dat) # # Step 2 # 標準化する # ScaleDat <- scale(dat) head(ScaleDat) # # Step 3 # クラスタ分析を実施する # # 引数methodは"median", "centroid", "ward.D2"のいずれか cl_1 <- hclust(dist(ScaleDat), method="centroid") # # Step 4 # 結果を表示する(デンドログラム) # par(family="HiraKakuProN-W3") # 和文フォント指定(Windowsでは不要) plot(cl_1) rect.hclust(cl_1, k=5, border="red") # # Step 5 # 結果の吟味 # # 所属クラスタを確認 cutree(cl_1, k=5) # i番目(ここでは2番目)のクラスタの特徴 i <- 2 dat[cutree(cl_1, k=5)==i, ] # クラスタ内の各変数の平均値 colMeans(dat[cutree(cl_1, k=5)==i, ])
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
解決方法を検索しても出てきませんでした。
補足
macを使っています
EatOut.csv ファイルの内容が不明なのではっきりとしたことは判りませんが、CSVファイルにヌル文字(NULL/0x00)が含まれているのかもしれません。skipNul オプションをTRUEに設定して読み込んでみてください。
dat <- read.csv("EatOut.csv", skipNul=True)
> プログラムを実行して図を表示させたいです。
その”プログラム"は質問者さんが作ったものですか?CSVも作ったものですか?
そうではなく書籍のサンプルプログラムや学校の課題でしょうか?そうであればコードを見直すと良いかもしれません。ご自身で作成された場合はCSV作成時に何かミスがあったりしませんか?
コメントありがとうございます。.skipNul=Trueを試しましたがまだ解決できませんでした。
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'EatOut.csv': No such file or directory
試すとこのようなエラーが出ました。
プログラムは学校の課題なので自分で作ったものではないです。
> 'EatOut.csv': No such file or directory
と表示されていますので、R を実行したディレクトリ(カレントディレクトリ)に EatOut.csv がないのだと思います。相対パスではなく絶対パスで指定するとどうなりますでしょうか?
コメントありがとうございます。
修正したら図が表示されました。
丁寧に説明してくださりありがとうございました。
> プログラムは学校の課題なので自分で作ったものではないです。
解決されたようで良かったですが、上記であればエラーが発生するのはおかしいので講師に問い合わせた方が良いかと思います。
既に解決済みなので,御参考です。
警告出力をみると各行に null(0x00) があることから,「UTF-16LE」でエンコードしたファイルの可能性もありそうです。つまり,ASCII 文字を「UTF-16LE」でエンコードすると上位バイトは null (下位バイトは ASCII コード,ただし LE なので先行するのは下位バイト)になるので,それを指摘しているのかもしれません。
仮説が正しければ,下記でもうまく読み込めるかもしれません。
dat <- read.csv("EatOut.csv", fileEncoding="UTF-16LE")
なお,「skipNul=TRUE」で読み込めたことからファイル内の文字は ASCII 文字のみと考えられます。
あなたの回答
tips
プレビュー