【发布时间】:2015-10-17 01:52:12
【问题描述】:
我正在使用以下代码计算两个时间点之间的峰值数量:
sum(peaks>=1 & peaks<=25)
但是,我不断收到以下消息:
Error in peaks >= 1 :
comparison (5) is possible only for atomic and list types
x 和 y 变量都是数字,所以我不确定为什么会收到此错误消息。这是一些示例数据的摘录:
0 0
1 0
2 0
3 0
4 0
5 14.6464
6 14.6464
7 14.6464
8 14.6464
9 16.7139
10 20.8488
11 20.8488
12 19.0305
13 15.3939
14 15.3939
15 15.3939
16 15.0954
17 14.4985
18 14.4985
19 14.4985
20 15.2851
21 16.8582
22 16.8582
23 16.796
24 16.6715
25 16.6715
我对此进行了研究,但其他错误消息的原因并未适用于 this example 或 this one。
【问题讨论】:
-
您需要说明您的子集,然后将
sum应用于此子集。一般形式为sum(vector_of_something[vector_of_something_else>=1 & vector_of_something_else<=25)。如果是 data.framedf、sum(df$vector_of_something[df$vector_of_something_else>=1 & df$vector_of_something_else<=25)或with(df, sum(vector_of_something[vector_of_something_else>=1 & vector_of_something_else<=25))。 -
@Pascal 感谢您的回复。子集有何不同?总和(df$peak[df$peak>=1 & df$peak
-
您能提供更多信息吗?就像您提到的 x 和 y 一样,它们中的哪一个是峰?或者峰值是一个数据框,您想查找数据框的所有值,它们介于指定的两个值之间?
-
@SamPassmore 峰值是我创建的一个函数,称为基于 y 的峰值。 x 是秒。 x 和 y 是原始数据。
-
如果 peaks 是一个函数,那么这就是你的问题。你不能那样使用函数。我已经用这些信息复制了你的问题。