这是该函数的公式。数据集包含变量k(行号)、t (0-120)和C。我想使用N= 121进行求和。
我现在写的代码如下:x <- function(tk,tk_0,conc,conc_0){x <- 1/2*sum((conc+conc_0)*(tk-tk_0))}
我不太确定如何继续编写代码,因为我应该编写一个函数,该函数需要时间和精力作为参数来计算x。
发布于 2021-05-07 09:43:17
R中的大多数计算函数都是矢量化的,这意味着您不必编写循环。如果向量C
包含时间t_1, ..., t_N
的测量值,向量t
包含时间,那么您可以简单地计算公式:
sum((tail(C,-1) + head(C,-1)) * diff(t)) / 2
tail(x, -1)
删除向量x
的第一个元素,head(x,-1)
删除向量x
的最后一个元素。Function diff
计算差值。有关更多信息,可以在R console ?tail
,?head
,?diff
中编写。
计算总和的另一种方法是注意,您需要长度为2的向量C
的滚动平均值。
sum(zoo::rollmean(C, 2) * diff(t))
https://stackoverflow.com/questions/67432124
复制相似问题