Rでロジスティック回帰と線形判別分析の実行

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,654

cde

score 10

Rstudioで以下のプログラムを実行するとエラーが出ます。どこか修正点があればご指摘お願いします。
以下のようなエラーです。

Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' is a list, but does not have components 'x' and 'y'
m_max<-9#最初に来る数字の最大値
k_max<-0#次に来る数字の最大値
dname<-"C:/Users/"
#C:/Users
fname<-"Tomcat"

install.packages('randomForest')
library('randomForest')

df <- read.csv(paste(dname,fname,".csv", sep = ""), header=T, row.names=NULL)
# ↓これが最初に来る数字の初期値
for(m in 0:m_max){
set.seed(m)
ds <- df[order(runif(nrow(df))),]
# ↓これが次に来る数字の初期値
for(k in 0:k_max){

#データ分解
#d <- ds[-round(1+(nrow(df)/k_max)*(k-1)):-round(nrow(df)/k_max*k),]
#write.csv(d, file=paste(dname,fname,"_cv_Fit_",k-1,"_",m-1,".csv", sep = ""),row.names = FALSE)
#d <- ds[round(1+(nrow(df)/k_max)*(k-1)):round(nrow(df)/k_max*k),]
#write.csv(d, file=paste(dname,fname,"_cv_Tst_",k-1,"_",m-1,".csv", sep = ""),row.names = FALSE)
#Tomcat_cv_Fit_0_0
#分解データを表示
fit_name<-paste("C:/Users/","Tomcat_cv_Fit_",m,"_",k,".csv",sep="")
fit.df<-read.csv(fit_name)
test_name<-paste("C:/Users/","Tomcat_cv_Tst_",m,"_",k,".csv",sep="")
test.df<-read.csv(test_name)

#データ結合
D0 <- read.csv(paste("C:/Users/","Tomcat_cv_Fit_0_0.csv",sep=""))
D1 <- read.csv(paste("C:/Users/","Tomcat_cv_Fit_1_0.csv",sep=""))
D2 <- read.csv(paste("C:/Users/","Tomcat_cv_Fit_2_0.csv",sep=""))
D3 <- read.csv(paste("C:/Users/","Tomcat_cv_Fit_3_0.csv",sep=""))

#重回帰
result1=lm(bug~.,data=fit.df)
#↓結果についてステップ関数
step.lm<-step(result1)
#結果
summary(result1)
#テストデータの予測
pred.lm<- predict(step.lm,test.df)

#精度
#数値が低いほど信用度は高い
#extractAIC(result1)

#テストデータの予測
#p1 #index
P1 <- predict(step.lm,test.df)
#上のグラフ 縦横の名称があってるかは不明 (x,y)でxが横 これでいえばP1、yが縦 indexがテストデータ数
plot(P1)#点グラフ
par(new=T)#重ね合わせ
plot(P1,type="l")#折れ線

#------------------------------------------------------------------------------------
#ランダム森
result2=randomForest(formula=bug~.,data=fit.df)
#result2=randomForest(formula=bug~.,data=fit.df,method="regression")
#表示
summary(result2)
#テストデータの予測
pred.rf<- predict(result2,test.df)

#テストデータの予測
P2 <- predict(result2,test.df)
#上のグラフ
plot(P2)
par(new=T)
plot(P2,type="l")

#-----------------------------------------------------------------------------------
#ファイルにデータ出力
#FIT変数にfit.df+test.dfしたものを代入
FIT <- rbind(data.frame(fit.df),data.frame(test.df))
#↓アウトプット テキスト
write.table(FIT,file="C:/Users/FIT.txt")
#↓アウトプット csv
write.table(FIT,file="C:/Users/FITcsv.csv")

loc <- FIT$loc
write.table(loc,file="C:/Users/LOC.txt")
write.table(loc,file="C:/Users/LOCcsv.csv")

bug <- FIT$bug
write.table(bug,file="C:/Users/BUG.txt")
write.table(bug,file="C:/Users/BUGcsv.csv")

#----------------------------------------------------------------------------------------

sum_loc <- function(n) {
if (n <= 1) return(1)
else return( n * Recall(n-1) )
}
sum_loc(10)

#----------------------------------------------------------------------------------
if(m==0||k==0){
result_summary.df<-cbind(cbind(test.df,pred.lm),pred.rf)
}else{
result_summary.df<-rbind(result_summary.df,cbind(cbind(test.df,pred.lm),pred.rf))
}
}
}
write.csv(result_summary.df,paste(dname,"result_summary.csv",sep=""))
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

+1

plot()で発生しているエラーのようです。

下記に変更して、実行してみてはいかがでしょうか?
行を

plot(t, type="l")

typeとグラフパターン

type="p"  点プロット(デフォルト)
type="l"  線プロット(折れ線グラフ)
type="b"  点と線のプロット
type="c"  "b" において点を描かないプロット
type="o"  点プロットと線プロットの重ね書き
type="h"  各点から x 軸までの垂線プロット
type="s"  左側の値にもとづいて階段状に結ぶ
type="S"  右側の値にもとづいて階段状に結ぶ
type="n"  軸だけ描いてプロットしない(続けて低水準関数でプロットする場合)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.21%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る