R-根据b行滑动窗口中满足的条件返回A行中的一个值

R-根据b行滑动窗口中满足的条件返回A行中的一个值,r,data.table,time-series,sliding-window,R,Data.table,Time Series,Sliding Window,新的编码,这里也是新的。我在做一个R脚本,一个时间序列分析。该脚本旨在检测平均值随时间的变化,并基于触发器(增加1或减少1),返回时间戳,该时间戳指示个体平均值开始增加/减少的位置,以及达到其最高或最低相对点的位置。以下是我到目前为止编写的代码(目前运行良好): 我在生成EndTimestamp向量时遇到问题。我写的代码如下: #calculate EndTimestamp EndTimestamp <- c() for (i in seq(nrow(DATAFRAME3))) {

新的编码,这里也是新的。我在做一个R脚本,一个时间序列分析。该脚本旨在检测平均值随时间的变化,并基于触发器(增加1或减少1),返回时间戳,该时间戳指示个体平均值开始增加/减少的位置,以及达到其最高或最低相对点的位置。以下是我到目前为止编写的代码(目前运行良好):

我在生成EndTimestamp向量时遇到问题。我写的代码如下:

#calculate EndTimestamp 
EndTimestamp <- c()
for (i in seq(nrow(DATAFRAME3))) {
  y <- i+1
  x <- i+90
  if (DATAFRAME3[i,NegativeChange] <= -1) {
    EndTimestamp <- append(EndTimestamp, as.character(DATAFRAME3[Average == min(DATAFRAME3[y:x,Average]), V1]))
  } else {
  EndTimestamp <- append(EndTimestamp, "")
  }
}
EndTimestamp
#计算结束时间戳

EndTimestamp R Inferno是使用R进行编码的一个很好的指南,它会告诉您,例如,您不想在循环中增长内容(与其他编程语言不同):参见第2章标题听起来像是一个自连接任务,如果您没有完成这个问题,您应该尝试实现它smaller@Frank. 谢谢你的链接。我使用下标方法重写了否定/肯定更改代码:否定更改请随意编辑到您的问题中。在评论中读起来有点难。顺便说一下,在注释中,您可以使用反勾号来描述代码和
是R中有效的行尾符号(因此您可以使用它,因为换行符不会出现在注释中)。感谢您的耐心等待。我用新的下标代码编辑了原始帖子。如上所述,我似乎无法理解冒号运算符方法。下面是我尝试过的,但我不断收到一个错误,读取“In-seq(nrow(DATAFRAME2))+1:seq(nrow(DATAFRAME2)):数值表达式有3461个元素:只有第一个使用的“
NegativeChange”R地狱是在R中编码的一个很好的指南,它会告诉你,例如,你不想在循环中增长东西(与其他编程语言不同)当前位置参见第2章标题听起来像是一个自动加入任务,如果你没有完成这个问题,你应该试着去做smaller@Frank.谢谢你的链接。我使用下标方法重写了否定/肯定更改代码:否定更改请随意编辑到你的问题中。在评论中阅读有点困难。顺便说一下,在评论中,你可以告诉我们e反勾号用于描绘代码,
是R中有效的行尾符号(因此您可以使用它,因为换行符不会出现在注释中)。谢谢你的耐心。我用新的下标代码编辑了原始帖子。正如我上面提到的,我似乎无法理解冒号运算符方法。这是我尝试过的,但我一直收到一个错误,读到“In-seq(nrow(DATAFRAME2))+1:seq(nrow(DATAFRAME2)):数值表达式有3461个元素:只使用了第一个”
NegativeChange
    > DATAFRAME3[1:32,]
           V1  Average NegativeChange PositiveChange
 1: 00:00:01| 8.000000    -3.00000000     -2.2500000
 2: 00:00:03| 5.750000    -0.75000000     -0.3088235
 3: 00:00:04| 5.333333    -0.33333333      0.1078431
 4: 00:00:05| 5.230769    -0.23076923      0.2104072
 5: 00:00:06| 5.150000    -0.15000000      0.2911765
 6: 00:00:07| 5.150000    -0.15000000      0.2911765
 7: 00:00:08| 5.150000    -0.15000000      0.2911765
 8: 00:00:10| 5.150000    -0.15000000      0.2911765
 9: 00:00:11| 5.136364    -0.13636364      0.3048128
10: 00:00:12| 5.130435    -0.13043478      0.3107417
11: 00:00:13| 5.125000    -0.12500000      0.3161765
12: 00:00:14| 5.107143    -0.10714286      0.3340336
13: 00:00:15| 5.103448    -0.10344828      0.3377282
....
30: 00:00:36| 5.000000     0.00000000      1.0606061
31: 00:00:38| 5.000000     0.02941176      1.0606061
32: 00:00:39| 5.029412     0.00000000      1.0311943
#calculate EndTimestamp 
EndTimestamp <- c()
for (i in seq(nrow(DATAFRAME3))) {
  y <- i+1
  x <- i+90
  if (DATAFRAME3[i,NegativeChange] <= -1) {
    EndTimestamp <- append(EndTimestamp, as.character(DATAFRAME3[Average == min(DATAFRAME3[y:x,Average]), V1]))
  } else {
  EndTimestamp <- append(EndTimestamp, "")
  }
}
EndTimestamp