我正在尝试计算一小段脑电波的每10毫秒曲线下面积。为了首先练习这个,我创建了一个小数据集来运行auc
(来自包{flux}
)函数。
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
。但是,在运行循环时,我收到此错误:
Error in seq.default(x[1], x[2], length.out = dens) : 'to' must be a finite number
当我在循环之外运行subset
和auc
代码时,它没有问题。谁能告诉我循环中出了什么问题?
答案 0 :(得分:0)
感谢您更新问题。这不是因为控制语句(for循环),当i = 10时错误被精确抛出 - 因为x-coords和y-coords向量的长度是不同的。特别是c(10,11)vs c(1)。但你在x = 11时没有意义!
在合适的时间提前停止循环