2017-08-22 3 views
-2

Ich versuche, die Fläche unter der Kurve für alle 10ms eines kurzen Stücks EEG-Welle zu berechnen. Zur ersten Übung habe ich einen kleinen Datensatz erstellt, um die Funktion auc (aus dem Paket {flux}) auszuführen.R: Schleife wird aufgrund eines seq.default-Fehlers nicht ausgeführt

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) 
} 

Die Schleife sollte versuchen, zwei Datenpunkte von jeder Variablen der Teilmenge und dann eine auc über diese Datenpunkte laufen. Wenn jedoch die Schleife ausgeführt wird, ich diese Fehlermeldung erhalten: Error in seq.default(x[1], x[2], length.out = dens) : 'to' must be a finite number

Als ich den subset und auc Code außerhalb der Schleife laufen, funktioniert es kein Problem. Kann mir jemand sagen, was in der Schleife schief läuft?

+0

dies das Problem ist: Untergruppe (y, x == (i + 1)), wenn i == 10 – Roland

+0

für i = 10 i + 1 = 11 , aus deinem 'df' –

+0

sehe ich, wie würde ich das Problem beheben? – Fred

Antwort

0

Vielen Dank für die Aktualisierung der Frage. Es ist nicht wegen der Kontrollanweisung (for-Schleife), der Fehler wird genau geworfen, wenn i = 10 - weil die Länge Ihrer x-Koordinaten und y-Koordinaten Vektoren unterschiedlich sind. Insbesondere c (10,11) gegen c (1). Aber du hast keinen Punkt bei x = 11!

hält nur die Schleife früh, zu gegebener Zeit

+0

Ich habe meine Frage aktualisiert, die 'auc'-Funktion stammt aus dem Paket' {flux} '[link] (https://artax.karlin.mff.cuni.cz/r-help/library/flux/html/auc. html) – Fred

Verwandte Themen