2017-08-22 15 views
-2

EEG波の短い部分の10msごとに曲線の下の面積を計算しようとしています。最初にこれを実行するには、auc(パッケージ{flux})機能をオンにするための小さなデータセットを作成しました。R:seq.defaultエラーのためにループが実行されない

x <- seq(1:10) 
y <- c(0:4,5:1) 
df <- data.frame(x,y) 
attach(df) 
plot(x,y) 

for (i in 1:10){ 
    x1 <- c(i,(i+1)) 
    y1 <- c(subset(y, x == i),subset(y, x == (i+1))) 
auc(x1,y1,thresh = 0) 
rm(y1,x1,i) 
} 

ループは、各変数の2つのデータポイントのサブセットし、それらのデータポイント上aucを実行しようとしなければなりません。ループを実行するときしかし、私はこのエラーを取得する:私は、ループの外にsubsetaucコードを実行すると、それは何の問題を Error in seq.default(x[1], x[2], length.out = dens) : 'to' must be a finite number

機能しません。誰かがループで何がうまくいかないのか教えてもらえますか?

+0

、早期ループを停止する:I = 10のためのサブセット(Y、X ==(I + 1))場合、I == 10 – Roland

+0

I + 1 = 11 、あなたの 'df'から –

+0

私は、これを修正するにはどうすれば行くのでしょうか? – Fred

答えて

0

質問を更新していただきありがとうございます。制御文(forループ)のせいではなく、x = coordとy-coordsベクトルの長さが異なるため、i = 10のときにエラーが正確にスローされます。特にc(10,11)vs c(1)。しかし、x = 11には何のポイントもありません!

ちょうどこれは問題である適切な時間に

+0

私の質問が更新されました。 'auc'関数はパッケージ' {flux} '[link](https://artax.karlin.mff.cuni.cz/r-help/library/flux/html/auc。 html) – Fred

関連する問題