编写循环和集成功能

时间:2018-06-05 17:24:38

标签: r integral

我想从数据框中的两列计算积分 积分基于一个函数; 1 / x,我知道我需要写一个循环。你能帮忙写一个循环和集成函数吗?

这是样本数据框;

upper_concentration<-c(1:200, 1)
lower_concentration<-upper_concentration*0.9
df = data.frame(upper_concentration,lower_concentration)

for (i in 1:(length(df))){
   integral <- function (x) {1/df$upper_concentration}
   result <- integrate(integral, lower = df$upper_concentration, upper =upper_concentration*0.9)
}

1 个答案:

答案 0 :(得分:0)

内置integrate功能将执行整个范围的积分。

lower <- 1
upper <- 200
integral <- function (x) {1/x}

result <- integrate(integral, lower, upper)

否如果您想要数据帧的每个部分的积分,则需要循环。

result<-vector(list, length=nrow(df))  #initialize an empty vector
integral <- function (x) {1/x}

for (i in 1:(nrow(df))){
    result[[i]] <- integrate(integral, df$lower_concentration[i], df$upper_concentration[i])
 }