11:07現在,Rを使っているのですが,慣れないせいもあって,困っています。ファイルを読み込んで,作業をして,ファイルに書き出すというオブジェクトを作っています。そのオブジェクトを実行すると,エラーが起きます。エラーメッセージは以下のとおりです。」(実際のフォルダ名は使わず,上ではファイル名,フォルダ名としています)過去ログの検索を行い,そこから学んで作業ディレクトリを上のフォルダ名に変えました。それでもエラーメッセージがでます。ちなみにオブジェクトの先頭文はt1<-read.table("C:\フォルダ名\ファイル名.csv",sep=",",header=TRUE)です。vistaでRのバージョンは2.7.2です。XPでも使用しています。(Rのバージョンはちょっと今分かりません)どなたか,エラーを解決する方法をご存知の方,教えてください。実際のフォルダ名は使わず,上ではファイル名,フォルダ名としていますの場合には,実際にわざわざ「ファイル名」,「フォルダ名」という日本語を含んだパス名を指定したと言うことですか??外つ国のソフトを使う際には,そのソフトが日本語に対応していると言っても程度問題なので,あんまり日本語に依存しない方がよいと思います。実際のフォルダ名は使わず,上ではファイル名,フォルダ名としていますこれは,この掲示板に投稿するときに,実際のファイル名を書くと,情報が漏れると怖いので,この掲示板では「フォルダ名」,「ファイル名」としているということです。実際は日本語のファイル名ではありません。試行錯誤しているうちに,どうにかオブジェクトが動いてくれるようになりました。お騒がせいたしました。私でない人が作ったオブジェクトは,動いてくれるのですが,私が作ったオブジェクトは,実行すると,論理値添え字が長すぎます,というエラーが出ます。オブジェクトを見直しても,特に長い単語は見当たらないように思うのですが,とりあえず,他の人が作ったオブジェクトを使っていこうと思います。困ったときには,質問を投稿するかもしれませんが,よろしくお願いいたします。t1<-read.table("C:\フォルダ名\ファイル名.csv",sep=",",header=TRUE)バックスラッシュを使っているのですか?バックスラッシュなら二重にしないといけないのでは?スラッシュを使えばよいと思うのですけど。20:25ご回答ありがとうございます。おっしゃる通りバックスラッシュを二重にすると動きました。論理添え字の件も,別の原因ですね。一緒にしてしまいすみませんでした。論理添え字の件もお分かりになる方がいらっしゃったら,よろしくお願い致します。実行すると,論理値添え字が長すぎます,というエラーが出ますというだけでは分かりませんよ。動かないというプログラムを示してください。全部である必要はなく,逆に長すぎても意味ないので,エラーを再現できる最短のプログラムを示してください。10:29アドバイスありがとうございます。一応,以下がプログラム文です。function(){}は省略してあります。長くなってしまいますがすみません。(重回帰の予測変数の係数を取り出すプログラムです)#データを読み込むt1<-read.table("C:\\フォルダ名\\ファイル名.csv",sep=",",header=TRUE)#データの予測変数の部分を取り出す。xx1<-matrix(as.matrix(t1[,3:8]),ncol=6)#データの目的変数の部分を取り出すyy<-as.matrix(t1[,2])#ndはデータ数nd<-length(as.vector(yy))#npは予測変数の数np<-6#予測変数の全ての組み合わせを求める。")##print(cdm)#予測変数の組み合わせの中からGCVを最小にするものを選ぶ。1:ns){cd<-cdm[,ii]#「drop=F」により,行または列の数が1であってもxxsが行列の形式になる。xxs<-xx1[,cd,drop=F]data1<-data.frame(x=xxs,y=yy)lm.out<-lm(y~.,data=data1)lev1<-lm.influence(lm.out)$hatey<-fitted(lm.out)fr<-sum(lev1)#以下がGCVの値。この値が小さい重回帰式が好ましい。gcvt[ii]<-sum((yy-ey)^2)/(nd*(1-fr/nd)^2)}##print("gcvt=")##print(gcvt)#cdmの中で,gcvtの値が最小になるものを選ぶ。bestcd<-cdm[,gcvt==min(gcvt)]#予測変数の一番好ましい組み合わせがbestcdである。print("bestcd=")print(bestcd)#データから最も好ましい予測変数の部分を取り出す。xxt<-xx1[,bestcd]data2<-data.frame(x=xxt,y=yy)lm.out<-lm(y~.,data=data2)ey<-lm.out$fittedprint("重回帰式の回帰係数")print(lm.out$coefficients)#グラフを描く。par(mfrow=c(1,1),mai=c(0.8,0.8,0.5,0.5),oma=c(8,1,8,1))xmin<-min(yy)-abs(min(yy))*0.1xmax<-max(yy)+abs(max(yy))*0.1ymin<-min(ey)-abs(min(ey))*0.1ymax<-max(ey)+abs(max(ey))*0.1plot(yy,ey,type="n",xlim=c(xmin,xmax),ylim=c(xmin,xmax),xlab="実測値",ylab="推定値")points(yy,ey,pch=3,col=4,cex=1)#結果をファイルにして出力する。論理値添え字が長すぎますと出ます。20:58「エラーを再現できるように」ということは,他の人がこのプログラムを実行したときに,以下のようなエラーは出ないように準備するということです。#データの予測変数の部分を取り出す。#cdmの中で,gcvtの値が最小になるものを選ぶ。#結果をファイルにして出力する。存在しませんたぶん,[ファイル名.csv]がこんなものですよと言う例となるファイルが与えられればよいのでしょう。21:25特定のプログラムを動くようにするというようなアドバイスではなく,一般的なプログラム作成に冠するアドバイスプログラムのテストデータは,一般に公開されているデータを使うとよい。irisデータセットを使うとよいのでは,1〜3列のデータで4列のデータを予測する。よって得られるものとする。irisデータセットの1〜4列(数値データフレーム)#データの予測変数の部分を取り出す。特定の条件下の数値を設定するのはよくない#予測変数の全ての組み合わせを求める。あとは,なにか複雑な計算をしているようで,時間が掛かっているようですね。果を期待している位の説明はあってしかるべきかと。(まあ,第三者は問題解決をしなくてはならないという必然性はないので)。1:10000){のように探索回数(?)を小さくすると,何のエラーも出さず,終了しました。その結果があなたの意図したものかどうかは分かりませんが。ファイルへの出力は以下のようなものでした。中略2.3,1.199333333333331.8,1.19933333333333グラフィック出力は今回の例では不完全なもののようでしたね。バッグは論理的に逐次的に進めないといけません。(期待通りの答えになっている)ことを順次調べていくのです。正しい答えになるように修正する必要があるのです。どこに原因があるかを突き止めずに,ああでもあろうか,こうでもあろうかと,闇雲にプログラムをいじっても(弄らずに悩んでいたのならなおさら),正しい答えが得られる可能性は非常に低いと言うことは明らかでしょう。22:42プログラムが何をやっているかに無関係に,デバッグは出来るという例として,以下のようなことを。挿入して容疑部分を確認してみると,xxs<-xx1[,cd,drop=F]が怪しいと思うに至った。"\n")cd<-cdm[,ii]cat("##2\n")#「drop=F」により,行または列の数が1であってもxxsが行列の形式になる。論理値添え字が長すぎますということになったので,どうも,この部分が怪しい(間違い)ということが分かるのだが,どうやったらあなたの望むように出来るかまでは,追求する気がない。(^_^;)エラーを再現できるような最小限のプログラムを,こちらから呈示すると,以下のようになっているのですよ(というか,このエラーは,こういうときに出るんですよ)と言うこと。論理値添え字が長すぎますこれは,あなたのプログラムのエラーの発生状況を,再現していると思うのですけどね。100ということのようなので,xxs<-xx1[,cd,drop=F]ではなくて,xxs<-xx1[cd,,drop=F]ではないのかなあとか。13:40色々と考えてくださり,本当にどうもありがとうございました。catなど知らないこともあったので,勉強になりました。プログラムの方は,アドバイスも参考にし,色々いじったものの,やはりエラーがでるので,やはり,他の人が作ったものを使っていこうと思います。(Excel2003でCSVファイルを作ると,他の人のでうまくいきました)色々と考えていただいたのにすみませんでした。本当にどうもありがとうございました。