长度为0的参数错误

时间:2020-05-14 07:10:59

标签: r

我有两个数据帧( eeg p1_1_a )。他们看起来像这样:

> head(eeg)
  wave_1
1 18.959
2 19.432
3 20.384
4 20.489
5 21.012
6 21.571

> nrow(eeg)
[1] 849

> class(eeg$wave_1)
[1] "numeric"

> head(p1_1_a)
      Time  Latency Amplitude Peak_Lenght
1  57.1184  7.90738 -0.388889     8.44690
2 123.3470 15.49230 -0.917778     5.51634
3 191.0920 11.87220 -0.466667     6.55066
4 249.1710 15.49230 -0.871111     5.68873
5 325.5090 10.32080 -0.388889     5.34396
6 385.6040 12.56180 -0.684444     4.82680

> class(p1_1_a$Time)
[1] "numeric"

> nrow(p1_1_a)
[1] 10

我想创建一个列表,该列表由wave_1中的数字组成,这些数字是与Time中每个数字最接近的较小数字。因此,该列表将包含10个数字,第一个将是56.678(wave_1 [48]),因为这是最接近Time [1](57.1184)的较小数字。我写了一个循环:

list <- c()

for(i in 1:nrow(p1_1_a$Time)){
if(eeg$wave_1 <= p1_1_a$Time[i]){
  list <- max(eeg$wave_1[eeg$wave_1 <= p1_1_a$Time[i]])
  }
}

但是我得到这个错误:

Error in 1:nrow(p1_1_a$Time) : argument of length 0

我尝试在网上搜索答案,但是我无法弄清楚。请帮助我。

1 个答案:

答案 0 :(得分:0)

不确定代码的其余部分,但是p1_1_a$Time是向量,而不是矩阵,因此无法执行nrow()。尝试length(p1_1_a$Time)