2017-08-22 43 views
-2

我正試圖計算EEG波每短10毫秒的曲線下面積。爲了首先練習這個,我做了一個小數據集來運行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) 
} 

環路應儘量從子集每個變量的兩個數據點,然後運行auc對這些數據點。但是,在運行循環的時候,我得到這個錯誤:當我在循環外部運行subsetauc代碼 Error in seq.default(x[1], x[2], length.out = dens) : 'to' must be a finite number

,它的工作原理沒有問題。任何人都可以告訴我循環中出了什麼問題嗎?

+0

這就是問題:子集(Y,X ==第(i + 1))當我== 10 – Roland

+0

對於i = 10 I + 1 = 11 ,出於你的'df' –

+0

我明白了,我該如何解決這個問題? – Fred

回答

0

感謝您更新問題。這不是因爲控制語句(for循環),當i = 10時錯誤就會被拋出 - 因爲你的x座標和y座標矢量的長度是不同的。特別是c(10,11)與c(1)。但你在x = 11沒有意義!

剛剛停止循環初期,在適當的時間

+0

我更新了我的問題,'auc'函數來自包'{flux}'[link](https://artax.karlin.mff.cuni.cz/r-help/library/flux/html/auc。 HTML) – Fred