我正在尝试创建一个程序,它将选择大型时间序列数据帧中的行,并仅返回斜率(行2-行1)/(时间2-时间1)为前两行(行1-行0)/(时间1-时间0)的斜率( >= )的行。我已经经历了一些非常繁重的循环操作,只是为了满足for循环的程度。
Time A B C
1.731806 NA NA 6.715383
1.794554 NA 6.899219 6.952729
1.79434 6.689599 6.903747 6.860664
1.928432 6.962717 7.126891 7.115988
2.000463 7.226573 7.330078 7.362645
2.090469 7.444833 7.632159 7.575328
2.175347 7.709757 7.836567 7.663173
2.765631 8.904291 8.970686 8.894602
2.905104 9.018817 8.997333 8.97221
2.980718 8.796641 8.793764 8.637462
3.058576 9.050172 9.118444 9.174402我希望有一种简单的矢量化方法来实现这一点,但我也想更进一步,我想返回斜率(行3-行2)/(时间3-时间2)的值,即行之间的前两个斜率的平均值((row2-row1)/(Time2-Time1)+row1-row0)/(Time1-Time0))/2 >= (行2-行0)/(时间2-时间0)。
数据帧也非常大,所以我希望在许多列(A,B,C...Z)中迭代这个函数,这就是为什么我希望使用矢量化的方法,我不太关心整个操作的速度。
我真的很感谢对问题的任何部分的帮助。它用于在非常大的数据集中省略进入静止阶段(当坡度下降时)的微生物生长数据。FYI数据点的存在是因为我创建了一个有条件的行,以过滤掉微生物生长的滞后阶段。
非常非常感谢!
https://stackoverflow.com/questions/38278664
复制相似问题