Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带平滑窗口的R中的Bourdet导数_R_Loops_Iteration_Smoothing_Derivative - Fatal编程技术网

带平滑窗口的R中的Bourdet导数

带平滑窗口的R中的Bourdet导数,r,loops,iteration,smoothing,derivative,R,Loops,Iteration,Smoothing,Derivative,我使用本PDF中的算法计算压力导数: 我已经能够相对容易地实现“两点”和“三连续点”方法,使用dplyr的滞后/超前函数将原始列前后偏移一行 这两种方法的问题在于,我们使用的高分辨率数据中可能存在大量噪声。这就是为什么有第三种方法“三个平滑点”更难实现的原因。有一个用户定义的“窗口宽度”,W,通常介于0和0.5之间。该算法选择point_L和point_R作为第一个点,使得ln(deltaP/deltaP_L)>W和ln(deltaP/deltaP_R)>W。以下是我到目前为止的结果: #If

我使用本PDF中的算法计算压力导数:

我已经能够相对容易地实现“两点”和“三连续点”方法,使用dplyr的滞后/超前函数将原始列前后偏移一行

这两种方法的问题在于,我们使用的高分辨率数据中可能存在大量噪声。这就是为什么有第三种方法“三个平滑点”更难实现的原因。有一个用户定义的“窗口宽度”,W,通常介于0和0.5之间。该算法选择point_L和point_R作为第一个点,使得ln(deltaP/deltaP_L)>W和ln(deltaP/deltaP_R)>W。以下是我到目前为止的结果:

#If necessary install DPLYR

#install.packages("dplyr")
library(dplyr)

#Create initial Data Frame
elapsedTime <- c(0.09583, 0.10833, 0.12083, 0.13333, 0.14583, 0.1680, 
0.18383, 0.25583)
deltaP <- c(71.95, 80.68,   88.39, 97.12, 104.24, 108.34, 110.67, 122.29)
df <- data.frame(elapsedTime,deltaP)

#Shift the elapsedTime and deltaP columns forward and back one row
df$lagTime <- lag(df$elapsedTime,1)
df$leadTime <- lead(df$elapsedTime,1)
df$lagP <- lag(df$deltaP,1)
df$leadP <- lead(df$deltaP,1)

#Calculate the 2 and 3 point derivatives using nearest neighbors
df$TwoPtDer <- (df$leadP - df$lagP) / log(df$leadTime/df$lagTime)

df$ThreeConsDer <- ((df$deltaP-df$lagP)/(log(df$elapsedTime/df$lagTime)))*               
((log(df$leadTime/df$elapsedTime))/(log(df$leadTime/df$lagTime))) +
((df$leadP-df$deltaP)/(log(df$leadTime/df$elapsedTime)))*                  
((log(df$elapsedTime/df$lagTime))/(log(df$leadTime/df$lagTime)))

#Calculate the window value for the current 1 row shift
df$lnDeltaT_left <- abs(log(df$elapsedTime/df$lagTime))
df$lnDeltaT_right <- abs(log(df$elapsedTime/df$leadTime))
#如有必要,安装DPLYR
#安装程序包(“dplyr”)
图书馆(dplyr)
#创建初始数据帧
拖延时间